mongodb - 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
},
]
可能吗?提前致谢
解决方案
您可以使用unwind
将数组元素分解为单独的文档。
然后你可以总结每个得到结果。
db.collection.aggregate([
{ $unwind : "$newTags" },
{ $group:
{ "_id" : "$newTags",
"count":{$sum:1}
}
}])
推荐阅读
- nginx - 在入口处设置 nginx 限制请求突发数
- ruby-on-rails - 将 webpacker 与资产图像一起使用
- android - NavigationDrawer 中的主页按钮不调用 onOptionsItemSelected
- android - 在启动 Activity 的 onCreate() 中直接崩溃,因为“指定为非空的参数为空”
- reactjs - 材质 UI 网格在打字稿中未正确显示
- javascript - JS简单数组排序
- python - 使用熊猫按一列一行中的值按字母顺序排列数据框
- sql - 如果 familyID 不是 4 的倍数,则在 SQL 表中创建虚拟填充行以使其如此
- axios - 无法让 Moxios stubRequest 工作
- php - 供用户下载的 CSV 文件,但文件大小停留在 500 KB 左右