Можете да направите и двете.
Ако вече имате дефинирани модели на mongoose, можете да ги използвате, докато пишете resolve
функции. Вижте следния пример
.
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)
})
})
}
}
})
})
Ако нямате модели mongoose или ако искате да използвате собствения драйвер на mongodb, можете да направите и това. Следва прост пример за това с помощта на MongoDB Node.JS драйвер .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Ако имате мангустови модели и искате да генерирате GraphQL схема от тях, може да се интересувате от graffiti-mongoose , който генерира GraphQL типове и схеми от съществуващи mongoose модели.