sql >> Databáze >  >> NoSQL >> MongoDB

Zpracování polí s výskytem mongoose v GraphQL

Ve skutečnosti můžete použít union nebo rozhraní zadejte pro linked_device pole.

Pomocí unijního typu můžete implementovat GQAssetType takto:

// graphql-asset-type.js

import { GraphQLObjectType, GraphQLString, GraphQLUnionType } from 'graphql'

var LinkedDeviceType = new GraphQLUnionType({
  name: 'Linked Device',
  types: [ ObjectIdType, GQAssetType ],
  resolveType(value) {
    if (value instanceof ObjectId) {
      return ObjectIdType;
    }
    if (value instanceof Asset) {
      return GQAssetType;
    }
  }
});

export var GQAssetType = new GraphQLObjectType({
  name: 'Asset',
  fields: () => ({
    name: { type: GraphQLString },
    linked_device: { type: LinkedDeviceType },
  })
});

Podívejte se na tento skvělý článek o sjednocení a rozhraní GraphQL .



  1. MongoDB – Jak vrátím dokumenty s <field_value> jako <field_key>?

  2. Jak používat operátor $and v mongodb - ovladač java

  3. Jarní data MongoDb:MappingMongoConverter odstraňte _class

  4. Oprávnění odepřeno, když je po úspěšné instalaci spuštěn příkaz 'mongod'