sql >> Databasteknik >  >> NoSQL >> MongoDB

Hantera Mongoose Populated Fields i GraphQL

Faktum är att du kan använda union eller gränssnitt typ för linked_device fältet.

Med hjälp av fackföreningstyp kan du implementera GQAssetType enligt följande:

// 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 },
  })
});

Kolla in den här utmärkta artikeln om GraphQL-union och gränssnitt .



  1. Fråga Mongodb Subdocuments error Konvertering av cirkulär struktur till JSON

  2. Rails, Mongoid &Unicorn config för Heroku

  3. skicka resultat till ett annat kommando i redis

  4. Hur tillhandahåller du konfiguration till MongoDB med Meteor?