Możesz zrobić jedno i drugie.
Jeśli masz już zdefiniowane modele mangusty, możesz ich użyć podczas pisania resolve
Funkcje. Zobacz poniższy przykład
.
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)
})
})
}
}
})
})
Jeśli nie masz modeli mongoose lub jeśli chcesz użyć natywnego sterownika mongodb, możesz to zrobić. Poniżej znajduje się prosty przykład wykonania tego przy użyciu sterownika MongoDB Node.JS .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Jeśli masz modele mangusty i chcesz z nich wygenerować schemat GraphQL, możesz zainteresować się graffiti-mongoose , który generuje typy i schematy GraphQL z istniejących modeli mangusty.