【发布时间】:2021-04-07 16:56:50
【问题描述】:
在 mongo 中,有一种方法可以从与查询条件匹配的文档中仅列出您希望在结果中出现的字段。像这样:
db.inventory.find( { status: "A" }, { item: 1, status: 1 } )
根据 mongo 文档。这意味着我们将看到所有状态为 A 的文档,但我们只会在结果中看到字段“item”和“status”。
但是,让我们假设“item”是一个非常复杂的对象,我只对嵌套字段感兴趣,比如
db.inventory.find( { status: "A" }, { 'item.field1.field2': 1, status: 1 } )
确实,我返回了仅使用 field1.field2 过滤的“项目”,但我希望它不被嵌套,所以不要返回
{
item: {
field1: {
field2
}
}
}
但我只想获取嵌套字段 (field2)。这可能吗?
【问题讨论】:
-
试试
{ "field2": "$item.field1.field2", status: 1 }
标签: mongodb mongodb-query