Mongoose Can';t在MongoDB中获取子文档的id

Mongoose Can';t在MongoDB中获取子文档的id,mongoose,Mongoose,整个文档 我有一个问题需要在MongoDB中获取子文档的id。当我试图显示子文档的任何其他对象时,它工作正常 比如说 reviews[0].author 将向我展示“西蒙·霍姆斯”的价值观 但是 将显示Null 怎么办?如果不在子文档中按id搜索,我无法返回所需的对象。您将问题标记为“mongoose”,这意味着该属性很可能实际命名为\u id,因为默认情况下,mongoose在子文档架构中创建该属性。如果要使用名为id的属性,则必须在模式中明确指定该属性,并明确禁止创建\u id。所以它可

整个文档

我有一个问题需要在MongoDB中获取子文档的id。当我试图显示子文档的任何其他对象时,它工作正常

比如说

reviews[0].author 
将向我展示“西蒙·霍姆斯”的价值观

但是

将显示Null


怎么办?如果不在子文档中按id搜索,我无法返回所需的对象。

您将问题标记为“mongoose”,这意味着该属性很可能实际命名为
\u id
,因为默认情况下,mongoose在子文档架构中创建该属性。如果要使用名为
id
的属性,则必须在模式中明确指定该属性,并明确禁止创建
\u id
。所以它可能实际上被称为
\u id
。不,我不知道为什么,但实际上它被命名为
id
。使用
\u id
时,它没有显示任何内容。那么,应用于导入源的架构不正确。使用
查看[0]。获取('id')
。这就是访问模型的附加架构中未声明的属性的方式。您可能还应该转换数据以匹配架构,或者更改架构以匹配数据。不幸的是,它返回Null,与仅查看[0]时的结果相同。这很有趣。值得注意的是,它是
null
,而不是
undefined
,它将为根本不存在的属性返回。猫鼬的“别名”
id
用于
\u id
,所以我认为这就是它丢失的地方。添加到架构中可以解决这一问题。另外,添加到返回普通对象将允许您按照最初尝试的方式访问属性。就像我刚开始的那样,您需要将数据或模式作为一个更持久的解决方案进行修复。
reviews[0].author 
reviews[0].id