Mongdb 无法从传递变量 ID 获取文档



我正在使用graphql解析器从数据库mongodb获取关系文档。

const resolvers = {
User: {
friends: async (parent, __, ctx) => {
let friend = await ctx.db
.collection("friends")
.find({userID: "hardcodeID"})
.toArray();  

return friend; // work!
}
}
}

当我从父级传递 id 时,这将失败。parent._id打印。是的,它返回 id 的值。发生此问题的原因是什么?我想在 Find 方法中时parent._id为空。但是,它是异步等待功能,应该得到值吗?

const resolvers = {
User: {
friends: async (parent, __, ctx) => {
let friend = await ctx.db
.collection("friends")
.find({userID: parent._id})
.toArray();  

console.log(parent_.id) // someIdFromParent
return friend; // []
}
}

尝试在parent._id上调用.toString()。看看你的例子,其中.find({userID: "hardcodeID"})工作正常,这表明在您的freinds模式中,userID被指定为String和您的传入,看起来像一个ObjectID

const resolvers = {
User: {
friends: async (parent, __, ctx) => {
let friend = await ctx.db
.collection("friends")
.find({userID: parent._id.toString()})
.toArray();  

return friend;
}
}

最新更新