您可以在“ _id”中包含一个计数字段吗?

时间:2019-07-17 18:42:12

标签: mongodb aggregation-framework studio3t

我正在尝试计算每个UserID的特定键值对的数量,然后根据特定条件(例如国家/地区为“美国”)将这些结果多次$ bucket

我已经尝试通过在$ match上使用存储桶 “ country”:“ US”,“ OS”:“ iOS” 但尝试此操作时,我只会得到空白结果,如果删除$ match阶段,则存储桶适用于每个文档。

{
    iOSUS: [
        {    
            "$match" : {
                    "_id": {
                        "country": "$US"
                           }
                        }
            },{   $bucket : {
                    groupBy: "$DownloadCount",
                    boundaries: [ 0, 1, 10, 20, 30, 40, 50, 100, 150, 200, 300, 400, 500],
                    default: "500+",
                    output: { count: { $sum: 1 } }
                }}
            ],


    // facetName2: [ /* add stages */ ],
    // add more facets
}

这是我在此阶段之前为每个文档获得的输出的示例。我该如何将“计数”放在“ _id”中,然后在$ facet中使用$ match函数正确地将各个存储桶分开?

{ 
    "_id" : {
        "UserID" : "106577122", 
        "country" : "MX", 
        "OS" : "iOS"
    }, 
    "count" : 1289.0
}

0 个答案:

没有答案