gpt4 book ai didi

javascript - 带有 graphql 和 document.toObject() 的 mongodb _id

转载 作者:可可西里 更新时间:2023-11-01 10:00:03 28 4
gpt4 key购买 nike

让我们使用返回一个项目的基本 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 .

Mongoose assigns each of your schemas an id virtual getter by default which returns the documents _id field cast to a string, or in the case of ObjectIds, its hexString. If you don't want an id getter added to your schema, you may disable it passing this option at schema construction time.

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

result.toObject({ virtuals: true })

参见 docsthis answer了解更多详情。

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

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com