используя Mongodb агрегатный групповой - PullRequest
0 голосов
/ 10 декабря 2018
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}}
)

Результат запроса, например:

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"
        }
    ]

Я пытаюсь сгруппировать PageResult с CategoryID, поэтому я добавляю следующие строки в запрос выше:

{$unwind: "$PageResult"},
{ $group : {_id : "$PageResult.CategoryID", count : {$sum : 1} } }

Ноэто дает мне это

{
"_id" : "60005202",
"count" : 6.0
}

Я использую $ group неправильно, разве результат не должен быть похож на

 {
"_id" : "60006410",
"count" : 10.0
}, 
{
"_id" : "60005202",
"count" : 6.0
}

1 Ответ

0 голосов
/ 10 декабря 2018

я обнаружил, почему я вижу такой результат, пару дней назад я изменил размер пакета (batchsize: 1) в файле C: \ Users \ username.3T \ robo-3t \ 1.1.1 \ robo3t.json, чтобы онЭто нормально, что я вижу 1 результат все время, я изменил его по умолчанию, я думаю, это 50, так что это означает, что мой код работает просто отлично.

...