У меня есть следующий этап в моем MongoDB
конвейере агрегации, который возвращает кол-во и сумму продаж, которая отлично работает:
{
$lookup: {
from: 'sales',
let: { part: '$_id' },
pipeline: [
{ $match: { $and: [{ $expr: { $eq: ['$partner', '$$part'] } }] } },
{ $group: { _id: null, qty: { $sum: 1 }, soldFor: { $sum: '$soldFor' } } },
{ $project: { _id: 0, qty: 1, soldFor: 1 } }],
as: 'sales'}},
{ $unwind: { path: '$sales', preserveNullAndEmptyArrays: true } },
{ $project: { _id: 1, sales: 1 }
}
Однако, если нет продаж, тогда $project
projection возвращает пустой объект продаж, но мне бы очень хотелось, чтобы он возвращал завершенный объект, но с 0 - вот так:
{
sales: {
qty: 0,
soldFor: 0
}
}