sql >> Database >  >> NoSQL >> MongoDB

Omgaan met met mangoest gevulde velden in GraphQL

In feite kunt u union gebruiken of interface type voor linked_device veld.

Met behulp van het union-type kunt u GQAssetType . implementeren als volgt:

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

Bekijk dit uitstekende artikel over GraphQL union en interface .



  1. Redis:NOAUTH Verificatie vereist, maar er is geen wachtwoordinstelling

  2. socket.io broadcast-functie &Redis pub/sub-architectuur

  3. mongodb probleem met open verbinding

  4. MongoMapper dichtbij met maxDistance - Mongo::OperationFailure:geo-waarden moeten getallen zijn: