代码之家  ›  专栏  ›  技术社区  ›  user3243499

如何获取MongoDB集合中特定字段的数组元素总数?

  •  1
  • user3243499  · 技术社区  · 7 年前

    我有一个json结构示例,如下所示:

    [
      {
        "a": 2,
        "b": [
          2
        ]
      },
      {
        "a": 2,
        "b": [
          2,
          3
        ]
      },
      {
        "b": [
          2,
          3,
          4
        ]
      },
      {
        "a": 2
      }
    ]
    

    我想计算集合中的元素总数 b .

    目前,我使用java代码来遍历每个文档并计算 b 的数组大小和添加。

    然而,当我浏览与MongoDB相关的文章时(我对MongoDB不熟悉),我发现MongoDB有丰富的聚合和过滤器。所以我在考虑是否可以得到field的数组元素总数 b 在集合中使用Mongo聚合或过滤器而不编写一些Java代码。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Kirk Larkin    7 年前

    db.mycollection.aggregate([
        { $project: { count: { $size: "$b" } } }
    ])
    

    Here 文件是否要 $size 接线员。