我需要带有 graphql 的猫鼬吗?
Do I need mongoose with graphql?
如果我想将 mongo 数据库连接到 graphql 模式,我需要 mongoose ORM 还是我可以直接调用原始驱动程序?
两者都可以。
如果您已经定义了 mongoose 模型,则可以在编写 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 类型和架构。
如果我想将 mongo 数据库连接到 graphql 模式,我需要 mongoose ORM 还是我可以直接调用原始驱动程序?
两者都可以。
如果您已经定义了 mongoose 模型,则可以在编写 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 类型和架构。