我有这种文件
[
{
....
tags : ["A","B"]
},
{
....
tags : ["A","B"]
},
{
....
tags : ["J","K"]
},
{
....
tags : ["A","B","C"]
}
]
使用Aggregation Framwork我想按数组组合分组,以便得到类似的内容:
[
{
_id:["A","B"],
count : 2
},
{
_id:["J","K"],
count : 1
},
{
_id:["A","B","C"],
count : 1
},
]
有可能吗?
谢谢
答案 0 :(得分:1)
不确定为什么你甚至认为这不会起作用:
db.collection.aggregate([
{ "$group": {
"_id": "$tags",
"count": { "$sum": 1 }
}}
])
返回:
{ "_id" : [ "A", "B", "C" ], "count" : 1 }
{ "_id" : [ "J", "K" ], "count" : 1 }
{ "_id" : [ "A", "B" ], "count" : 2 }
MongoDB"不关心"你投入到"字段的价值"或"属性"。这适用于"分组键" $group
运算符中的_id
也是如此。一切都是"文件"因此是BSON值,因此是有效的。
一切正常。只要它是你想要的。