【问题标题】:Mongodb counting array combinationsMongodb计数数组组合
【发布时间】:2015-01-10 16:39:38
【问题描述】:

我有这种文件

[
{
    ....
    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
    },
]

有可能吗?

谢谢

【问题讨论】:

    标签: mongodb mongodb-query aggregation-framework


    【解决方案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 值,因此是有效的。

    一切正常。只要是你想要的。

    【讨论】:

      猜你喜欢
      • 2021-11-18
      • 2020-11-09
      • 2013-01-12
      • 2020-09-15
      • 1970-01-01
      • 2018-08-17
      • 2017-09-13
      • 1970-01-01
      • 2015-02-14
      相关资源
      最近更新 更多