Py学习  »  MongoDB

MongoDB聚合,计算数组中的每个项并按项分组

Harry • 5 年前 • 1491 次点击  

这里我有一系列重复的东西

[
 'gg',
 'bb',
 'dd',
 'cc',
 'll',
 'aa',
 'cc',
 'gg',
 'bb',
 'dd',
 'cc',
 'bb',
 'dd',
 'll',
 'aa',
]

我愿意这样回去

{
 'gg': 2,
 'bb': 3,
 'dd': 3,
 'cc': 2,
 'll': 2,
 'aa': 2,
}

可以用MongoDB聚合完成吗???感谢你的帮助

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/47985
 
1491 次点击  
文章 [ 1 ]  |  最新文章 5 年前
Atish
Reply   •   1 楼
Atish    6 年前

使用 $unwind $group 作为聚集哌比利的阶段:
查询:

db.collection.aggregate([
      {
        $unwind: "$items"
      },
      {
        $group: {
          _id: "$items",
          count: {
            $sum: 1
          }
        }
      }
    ])

结果:

{
    "_id": "ll",
    "count": 2
  },
  {
    "_id": "gg",
    "count": 2
  },
  {
    "_id": "bb",
    "count": 3
  },
  {
    "_id": "cc",
    "count": 3
  },
  {
    "_id": "aa",
    "count": 2
  },
  {
    "_id": "dd",
    "count": 3
  }