Du kan göra båda.
Om du redan har definierat mungomodeller kan du använda dem medan du skriver resolve
funktioner. Se följande exempel
.
var QueryType = new GraphQLObjectType({
name: 'Query',
fields: () => ({
todos: {
type: new GraphQLList(TodoType),
resolve: () => {
return new Promise((resolve, reject) => {
TODO.find((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
}
})
})
Om du inte har mongoose-modeller eller om du vill använda mongodb native driver kan du göra det också. Följande är ett enkelt exempel på hur du gör det med MongoDB Node.JS Driver .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Om du har mongoose-modeller och du vill generera GraphQL-schema från dem, kanske du är intresserad av graffiti-mongoose , som genererar GraphQL-typer och scheman från befintliga mongoose-modeller.