Здравствуйте, я новичок в Mongodb, и у меня проблема с агрегированным поисковым запросом.
dbstock.aggregate([
{
$match: {
"stockLocation": "stockId",
"companyId": "companyId"
}
},
{
$lookup: {
from: "items",
let: { item: "$stockItemCode", company: "$companyId" },
pipeline: [
{ $match:
{ $expr:
{ $and:
[
{ $eq: [ "$itemCode", "$$item" ] },
{ $eq: [ "$companyId", "$$company" ] }
]
}
}
},
{ $project: { _id: 0, itemName: 1, companyId: 1 } }
],
as: "item"
}
},
{
$group: {
_id: "$stockItemCode",
itemName: { $last: "$itemName" },
companyId: { $last: "$companyId" },
stockLocation: { $last: "$stockLocation" },
positiveQuantity: { $sum: { $cond: [{ $gt: ['$quantity', 0] }, "$quantity", 0] } },
negativeQuantity: { $sum: { $cond: [{ $lt: ['$quantity', 0] }, "$quantity", 0] } },
item: { $last: "$item" }
}
},
], {
allowDiskUse: true
})
Запрос работает Хорошо без $ group, но когда я использую $ group в своем запросе, он очень медленный, иногда требуется 5, чтобы 10 минут