Строительство трубопровода и агрегата в Монго - PullRequest
0 голосов
/ 02 июня 2018

Как агрегировать приведенную ниже коллекцию типов документов для суммирования quantity всех product_id проданных на основе district_id и city_id за период времени

Я пытался использоватьагрегатные функции $match, $group, но не увенчались успехом.

{
    "_id" : ObjectId("5b115e00a186ae19062b0714"),
    "id" : 86164014,
    "cost" : 3,
    "created_date" : "2017-04-04 21:44:14",
    "quantity" : 12,
    "bill_id" : 46736603,
    "product_id" : 24,
    "bill_date" : "2017-04-04",
    "district_id" : 75
    "city_id": 21
}

1 Ответ

0 голосов
/ 02 июня 2018

Вы должны быть более конкретны относительно "в течение определенного периода времени" и того, какое поле мы должны рассмотреть, но запрос для первой части может быть таким:

db.getCollection("your collection").aggregate([
    {
        $group: {
            _id: {
                city_id: "$city_id", 
                district_id: "$district_id"
            },
            quantities: { $sum: "$quantity" }
        }
    }
])
...