[英]mongodb _id with graphql and document.toObject()
让我们使用一个基本的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默认情况下为您的每个模式分配一个id虚拟getter,该属性将文档_id字段强制转换为字符串,对于ObjectIds,则返回其hexString。 如果您不希望在架构中添加id getter,则可以在架构构建时通过此选项将其禁用。
他们的关键是id
字段是一个虚拟的getter 。 为了将那些包含在生成的对象中,您必须将适当的选项传递给toObject
:
result.toObject({ virtuals: true })
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.