如果我想将 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(使用前将#替换为@)