MongoDB: Как выполнить суммирование записей, сгруппированных по родительской записи, с использованием агрегата - PullRequest
0 голосов
/ 04 июля 2019

Я не знаю, как написать запрос, чтобы показать мне данные о продажах в разбивке по каталогу.Попытка выяснить, как увидеть все проданные товары в разбивке по каталогу / коду товара.Каталоги имеют поддокумент со всеми идентификаторами элементов и кодом, с которым они связаны с каталогом.У нескольких каталогов может быть один и тот же элемент, но у них может быть другой код catalog_item.

Я смог получить эту информацию, выполнив несколько запросов и соединив данные.Но этот маршрут неоптимальный.Любые предложения о том, как мне отформатировать эти данные в одном запросе?

enter image description here

Вот обзор схемы:

    // collection: Catelog
"_id" : "GUID",
"name" : "Catalog Name",
"status" : boolean,
"itemCodes" : [

    {
        "id" : "Items._id",
        "code" : "A"
    },
    {
        "id" : "Items._id",
        "code" : "B"
    },
    {
        "id" : "Items._id",
        "code" : "C"
    },
    {
        "id" : "Items._id",
        "code" : "D"
    },
]
}

// collection: Orders
{
"_id" : "GUID",
"consumerId" : "GUID",
"userId" : "GUID",
"lineItems" : [
    {
        "catalogId" : "GUID",
        "itemId" : "GUID",
        "name" : "Item Name",
        "quantity" : Number,
        "cost" : Number,
        "price" : Number
    },
    {
        "catalogId" : "GUID",
        "itemId" : "GUID",
        "name" : "Item Name",
        "quantity" : Number,
        "cost" : Number,
        "price" : Number
    }
],
"paid" : false,
"totalQuantity" : Number,
"totalCost" : Number,
"totalPrice" : Number
}

// collection: Items
{
"_id" : "GUID",
"name" : "NAME",
"code" : "20400",
"description" : "DESCRIPTION",
"cost" : Number,
"price" : Number,
"status" : true
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...