Můžete udělat obojí.
Pokud již máte definované modely mongoose, můžete je použít při psaní resolve
funkcí. Podívejte se na následující příklad
.
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)
})
})
}
}
})
})
Pokud nemáte modely mongoose nebo chcete použít nativní ovladač mongodb, můžete to udělat také. Následuje jednoduchý příklad, jak to udělat pomocí Ovladač MongoDB Node.JS .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Pokud máte modely mongoose a chcete z nich vygenerovat schéma GraphQL, možná vás bude zajímat graffiti-mongoose , který generuje typy a schémata GraphQL z existujících modelů mongoose.