【问题标题】:How to get total number of array elements for a particular field in a MongoDB collection?如何获取 MongoDB 集合中特定字段的数组元素总数?
【发布时间】:2018-09-26 15:15:29
【问题描述】:

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

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

我想计算集合中字段b的元素总数。

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

然而,当我浏览 MongoDB 相关文章时(我是 MongoDB 新手),我发现 MongoDB 具有丰富的聚合和过滤器。所以我在想是否可以在不编写一些 Java 代码的情况下使用 Mongo 聚合或过滤器来获取集合中字段 b 的数组元素总数。

【问题讨论】:

标签: mongodb


【解决方案1】:

你可以像这样使用聚合

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

Here$size 操作员的文档。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2022-01-03
    相关资源
    最近更新 更多