MongoDB:整个数组元素的个数collection
MongoDB: count of array elements in whole collection
我的 collection 中有以下文件:
{
"id" : 1,
"tags" : ["tag1","tag2","tag3"]
},
{
"id" : 2,
"tags" : ["tag1","tag4","tag5"]
},
{
"id" : 3,
"tags" : ["tag1","tag5","tag6"]
},
...
我想知道相同的数组元素在collection中出现了多少次:
{
"tag": "tag1",
"count": 3
},
{
"tag": "tag2",
"count": 1
},
...
有没有办法在一个聚合中得到这个输出?
您可以在这种情况下使用 $unwind
。
这是参考 link.
db.getCollection('tests').aggregate([
{ $unwind: "$tags" },
{ $group: {
_id: "$tags",
count: { $sum: 1 }
}}
])
我的 collection 中有以下文件:
{
"id" : 1,
"tags" : ["tag1","tag2","tag3"]
},
{
"id" : 2,
"tags" : ["tag1","tag4","tag5"]
},
{
"id" : 3,
"tags" : ["tag1","tag5","tag6"]
},
...
我想知道相同的数组元素在collection中出现了多少次:
{
"tag": "tag1",
"count": 3
},
{
"tag": "tag2",
"count": 1
},
...
有没有办法在一个聚合中得到这个输出?
您可以在这种情况下使用 $unwind
。
这是参考 link.
db.getCollection('tests').aggregate([
{ $unwind: "$tags" },
{ $group: {
_id: "$tags",
count: { $sum: 1 }
}}
])