首页 > 解决方案 > Mongodb计数数组中的项目组合

问题描述

我有类似的东西:`

[
{
    ....
    tags : ["A","B"]
},
{
    ....
    tags : ["A","B"]
},
{
    ....
    tags : ["J","K"]
},
{
    ....
    tags : ["A","B","C"]
}
]`

使用聚合框架,我想按数组组合进行分组,以获得如下内容:

[
{
    _id:["A","B"],
    count : 3
},
{
    _id:["J","K"],
    count : 1
},
{
    _id:["A","C"],
    count : 1

   },
{
        _id:["B","C"],
        count : 1
    },
]

可能吗?提前致谢

标签: mongodbaggregation-frameworkaggregation

解决方案


您可以使用unwind将数组元素分解为单独的文档。

然后你可以总结每个得到结果。

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


推荐阅读