Puoi fare entrambe le cose.
Se hai già definito dei modelli di mangusta, puoi usarli mentre scrivi resolve
funzioni. Vedi il esempio seguente
.
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)
})
})
}
}
})
})
Se non disponi di modelli mongoose o se desideri utilizzare il driver nativo mongodb, puoi farlo anche tu. Di seguito è riportato un semplice esempio di utilizzo del Driver MongoDB Node.JS .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Se disponi di modelli mongoose e desideri generare uno schema GraphQL da essi, potresti essere interessato a graffiti-mongoose , che genera tipi e schemi GraphQL da modelli mangusta esistenti.