【发布时间】:2016-09-11 06:49:00
【问题描述】:
如果我想将 mongo 数据库连接到 graphql 架构,我需要 mongoose ORM 还是可以只进行原始驱动程序调用?
【问题讨论】:
如果我想将 mongo 数据库连接到 graphql 架构,我需要 mongoose ORM 还是可以只进行原始驱动程序调用?
【问题讨论】:
两者都可以。
如果您已经定义了猫鼬模型,您可以在编写resolve 函数时使用它们。请参阅following example。
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)
})
})
}
}
})
})
如果你没有 mongoose 模型或者你想使用 mongodb 原生驱动,你也可以这样做。以下是使用MongoDB Node.JS Driver 的简单示例。
resolve: () => {
return new Promise((resolve, reject) => {
db.collection('todos').find({}).toArray((err, todos) => {
if (err) reject(err)
else resolve(todos)
})
})
}
如果您有 mongoose 模型并想从中生成 GraphQL 架构,您可能会对 graffiti-mongoose 感兴趣,它会从现有的 mongoose 模型中生成 GraphQL 类型和架构。
【讨论】:
TODO.find()。