Du kan gøre begge dele.
Hvis du allerede har defineret mongoose-modeller, kan du bruge dem, mens du skriver resolve
funktioner. Se det følgende eksempel
.
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)
})
})
}
}
})
})
Hvis du ikke har mongoose-modeller, eller hvis du vil bruge mongodb native driver, kan du også gøre det. Følgende er et simpelt eksempel på at gøre det ved at bruge MongoDB Node.JS Driver .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Hvis du har mongoose-modeller, og du vil generere GraphQL-skema fra dem, kan du være interesseret i graffiti-mongoose , som genererer GraphQL-typer og skemaer fra eksisterende mongoose-modeller.