【问题标题】:Exclude object attributes in the document by list of keys in MongoDB通过 MongoDB 中的键列表排除文档中的对象属性
【发布时间】:2022-11-25 21:47:21
【问题描述】:

我收集了具有 Object 类型的 data 属性的文档。我想在查询中排除 data 对象的某些属性。例如,原始文档可能如下所示:

{
    _id: "6380afde67f74203dafeb13b",
    data: {
       A: 41,
       B: 9,
       C: 842,
       X: -1,
       Y: 34
    }
}

我只想在结果中包含 data 的一些键。因此,如果我只想包含属性 AB,我的结果将如下所示:

[
    {
        _id: "6380afde67f74203dafeb13b",
        data: {
           A: 41,
           B: 9
        }
    },
    ...
]

我想我应该为此使用 $project 阶段,但我不确定如何为我事先不知道其名称的字段列表编写这样的查询。

如何仅包含来自data 的这些属性?

【问题讨论】:

    标签: mongodb mongoose


    【解决方案1】:

    我不确定“我事先不知道字段列表”是什么意思。这些信息究竟应该从哪里来?因此我只是硬编码属性名称。

    但是您仍然可以使用以下查询来仅投影属性 "A""B"

    db.collection.find({},
    {
      _id: 1,
      data: {
        A: 1,
        B: 1
      }
    })
    

    这使用投影阶段仅返回所需的属性。

    【讨论】:

      猜你喜欢
      • 2014-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 2017-08-01
      • 2017-11-17
      • 1970-01-01
      相关资源
      最近更新 更多