我需要 mongoose 和 graphql 吗?

2024-01-11

如果我想将 mongo 数据库连接到 graphql 模式,我是否需要 mongoose ORM 或者我可以只进行原始驱动程序调用吗?


你可以两者都做。

如果您已经定义了猫鼬模型,则可以在编写时使用它们resolve功能。请参阅下面的例子 https://www.compose.io/articles/using-graphql-with-mongodb/.

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 驱动程序 https://github.com/mongodb/node-mongodb-native.

resolve: () => {
  return new Promise((resolve, reject) => {
    db.collection('todos').find({}).toArray((err, todos) => {
      if (err) reject(err)
      else resolve(todos)
    })
  })
}

如果您有 mongoose 模型并且想从它们生成 GraphQL 模式,您可能会对涂鸦猫鼬 https://github.com/RisingStack/graffiti-mongoose,它从现有的 mongoose 模型生成 GraphQL 类型和模式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

我需要 mongoose 和 graphql 吗? 的相关文章

随机推荐