让我们使用返回一项的基本 mongodb 查询:
const result = await db.myCollection.findById('xxxx')
return result;
给 graphql 的这个查询结果工作正常。
但是现在,如果我返回
result.toObject()
,它就不再起作用了。我收到以下错误:
"message": "Cannot return null for non-nullable field MyCollection.id."
为什么使用
toObject()
无法完成 _id
和 id
之间的映射? 最佳答案
MongoDB 生成的 id 将是一个 _id
字段——它是 mongoose 是 actually mapping it for you 。
这里的关键是 id
字段是 虚拟 getter 。为了将那些包含在生成的对象中,您必须将适当的选项传递给 toObject
:
result.toObject({ virtuals: true })
有关更多详细信息,请参阅 docs 或 this answer。
关于javascript - mongodb _id 与 graphql 和 document.toObject(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49320858/