首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mongodb aggregate groupby

使用mongodb aggregate groupby
EN

Stack Overflow用户
提问于 2018-12-10 17:14:59
回答 1查看 42关注 0票数 0
代码语言:javascript
复制
db.getCollection('dbName').aggregate(
{$match: {"Request":"request"}},
{$project : {"PageResult":1,"ProductFilter":1,"BreadCrumbs":1,"ShowCaseHtml":1}},
{$unwind: "$PageResult"},
{$match: { $and:[ 
                {"PageResult.Brand":{$in:[/b1/i,/b2/i]}}
             ]}},
{$group: {"_id": {"Request":"$Request",
    "ProductFilter":"$ProductFilter",
    "BreadCrumbs":"$BreadCrumbs",
    "ShowCaseHtml":"$ShowCaseHtml"},
    "PageResult": {$push : "$PageResult"}}},
{$project : {"PageResult.CategoryID":1}}
)

查询的结果如下:

代码语言:javascript
复制
PageResult" : [ 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60006410"
        }, 
        {
            "CategoryID" : "60005202"
        }, 
        {
            "CategoryID" : "60005202"
        }, 
        {
            "CategoryID" : "60005202"
        }, 
        {
            "CategoryID" : "60005202"
        }, 
        {
            "CategoryID" : "60005202"
        }, 
        {
            "CategoryID" : "60005202"
        }
    ]

我尝试的是使用CategoryID对PageResult进行分组,所以我在上面的查询中添加了下面这几行:

代码语言:javascript
复制
{$unwind: "$PageResult"},
{ $group : {_id : "$PageResult.CategoryID", count : {$sum : 1} } }

但它给了我这个

代码语言:javascript
复制
{
"_id" : "60005202",
"count" : 6.0
}

我是不是用错了$group,结果不应该是这样的吗

代码语言:javascript
复制
 {
"_id" : "60006410",
"count" : 10.0
}, 
{
"_id" : "60005202",
"count" : 6.0
}
EN

回答 1

Stack Overflow用户

发布于 2018-12-10 20:00:29

几天前,我更改了C:\Users\username.3T\robo-3t\1.1.1\robo3t.json文件中的批处理大小(批处理大小:1),所以每次更改时都看到1个结果是很正常的,我认为默认值是50,所以这意味着我的代码运行得很好。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53702525

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档