【发布时间】:2016-08-31 01:23:11
【问题描述】:
如何从 Graphql 返回多个集合中的数据?
const jobsCollection = db.collection('jobs');
const companysCollection = db.collection('company');
import {
GraphQLList,
GraphQLObjectType,
GraphQLSchema,
GraphQLString,
GraphQLInt,
GraphQLFloat,
GraphQLEnumType,
GraphQLNonNull
} from 'graphql';
const Company = new GraphQLObjectType({
name: 'Company Name',
description: 'test',
fields: () => ({
_id: {type: GraphQLString},
name: {type: GraphQLString},
address : {type: GraphQLString}
}
})
});
通过下面的查询,我也想查询公司集合。我该怎么做?
const Job = new GraphQLObjectType({
name: 'job',
description: 'test',
fields: () => ({
_id: {type: GraphQLString},
name: {type: GraphQLString},
skill_set : {type: GraphQLString},
company: {type: Company}
}
})
});
## 通过下面的查询我也想查询公司集合。我怎样才能做到这一点? ##
const Query = new GraphQLObjectType({
name: "Queries",
fields: {
jobs: {
type: new GraphQLList(Job),
resolve: function(rootValue, args, info) {
let fields = {};
let fieldASTs = info.fieldASTs;
fieldASTs[0].selectionSet.selections.map(function(selection) {
fields[selection.name.value] = 1;
});
return jobsCollection.find({}, fields).toArray();
}
}
}
});
【问题讨论】:
标签: graphql graphql-js