У меня есть модель продукта, которая содержит список всех продуктов разных продавцов, и модель заказа, которая содержит список заказанных продуктов.
Мне нужно сделать запрос, чтобы получить общую сумму, заработанную продавцом
Модель продуктов:
{
"_id": 1,
"ProductName": "product 1",
"Price": 100,
"SellerId": 1
},
{
"_id": 2,
"ProductName": "product 2",
"Price": 200,
"SellerId": 2
},
{
"_id": 3,
"ProductName": "product 3",
"Price": 50,
"SellerId": 1
}
Модель заказов:
{
"_id": 1,
"ProductId": 1,
"Price": 100,
"Quantity": 2,
"Total": 200,
"Status": true
},
{
"_id": 2,
"ProductId": 2,
"Price": 200,
"Quantity": 10,
"Total": 2000,
"Status": true
}
Агрегация
db.products.aggregate([
{
"$match": { "SellerId" :1 }
},
{
$lookup: {
from: 'orders',
localField: '_id',
foreignField: 'ProductId',
as: 'requests.service'
}
},
$group:{
_id: "$_id",
totalAmount: { $sum: "$Total" },
}
])
Окончательный вывод показывает 0 при поиске конкретного продавца, не в состоянии найти решение.
Ожидаемый результат для продавца 1 — 200, а для продавца 2 — 2000.