让我们使用返回一项的基本 mongodb 查询:

const result = await db.myCollection.findById('xxxx')
return result;

给 graphql 的这个查询结果工作正常。

但是现在,如果我返回 result.toObject() ,它就不再起作用了。

我收到以下错误:
"message": "Cannot return null for non-nullable field MyCollection.id."

为什么使用 toObject() 无法完成 _idid 之间的映射?

最佳答案

MongoDB 生成的 id 将是一个 _id 字段——它是 mongoose 是 actually mapping it for you



这里的关键是 id 字段是 虚拟 getter 。为了将那些包含在生成的对象中,您必须将适当的选项传递给 toObject :

result.toObject({ virtuals: true })

有关更多详细信息,请参阅 docsthis answer

关于javascript - mongodb _id 与 graphql 和 document.toObject(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49320858/

10-10 17:15