【问题标题】:Partially suppress (project) nested field from MongoDB query从 MongoDB 查询中部分抑制(项目)嵌套字段
【发布时间】: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)。这可能吗?

【问题讨论】:

标签: mongodb mongodb-query


【解决方案1】:
db.user_data.aggregate([{$match:{status: "A"},{$group:{"field2":{$first:"$item.field1.field2"}}}}])

【讨论】:

    猜你喜欢
    • 2017-04-10
    • 2019-08-12
    • 2021-07-13
    • 2018-05-16
    • 2020-07-30
    • 2017-01-27
    • 2019-09-25
    • 2019-05-17
    • 2020-03-09
    相关资源
    最近更新 更多