Bạn có thể làm cả hai.
Nếu bạn đã xác định các mô hình mongoose, bạn có thể sử dụng chúng trong khi viết resolve
chức năng. Xem ví dụ sau
.
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)
})
})
}
}
})
})
Nếu bạn không có mô hình mongoose hoặc nếu bạn muốn sử dụng trình điều khiển gốc mongodb, bạn cũng có thể làm điều đó. Sau đây là một ví dụ đơn giản về việc này bằng cách sử dụng MongoDB Node.JS Driver .
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
Nếu bạn có mô hình mongoose và bạn muốn tạo giản đồ GraphQL từ chúng, bạn có thể quan tâm đến graffiti-mongoose , tạo ra các loại và lược đồ GraphQL từ các mô hình mongoose hiện có.