Sie können beides tun.
Wenn Sie bereits Mongoose-Modelle definiert haben, können Sie diese beim Schreiben von resolve
verwenden Funktionen. Siehe folgendes Beispiel
.
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)
})
})
}
}
})
})
Wenn Sie keine Mongoose-Modelle haben oder den nativen Mongodb-Treiber verwenden möchten, können Sie das auch tun. Im Folgenden finden Sie ein einfaches Beispiel für die Verwendung des MongoDB Node.JS-Treibers .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Wenn Sie Mongoose-Modelle haben und daraus ein GraphQL-Schema generieren möchten, könnten Sie an graffiti-mongoose interessiert sein , das GraphQL-Typen und -Schemas aus bestehenden Mongoose-Modellen generiert.