MongoDB 计算数组组合数量

3
我有这样的文件。
[
{
    ....
    tags : ["A","B"]
},
{
    ....
    tags : ["A","B"]
},
{
    ....
    tags : ["J","K"]
},
{
    ....
    tags : ["A","B","C"]
}
]

使用“聚合框架”,我想按照数组组合进行分组,得到以下结果:
[
    {
        _id:["A","B"],
        count : 2
    },
    {
        _id:["J","K"],
        count : 1
    },
    {
        _id:["A","B","C"],
        count : 1
    },
]

有没有可能做到这一点?

谢谢

1个回答

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值,因此有效。
任何东西都可以。只要是您想要的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接