Você pode fazer os dois.
Se você tem modelos de mangusto já definidos, você pode usá-los enquanto escreve
resolve
funções. Veja o exemplo a seguir
. 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 você não tiver modelos de mongoose ou se quiser usar o driver nativo do mongodb, também poderá fazer isso. Veja a seguir um exemplo simples de como fazer isso usando o MongoDB Node.JS Driver .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Se você tem modelos de mangusto e deseja gerar o esquema GraphQL a partir deles, pode estar interessado em graffiti-mongoose , que gera tipos e esquemas do GraphQL a partir de modelos de mangusto existentes.