я решил такую же проблему, автор этого вопроса было с решением другой парень, публикуемую в ответ: Unwind empty array in mongodbMongoDB Совокупные Project + разматывает пустой массив
В эти дни я обновил свой MongoDB/мангуста, и теперь я получает сообщение об ошибке:
MongoError: поле верхнего уровня _id является единственным полем в настоящее время поддерживается для исключения
Похоже монго пытается это поле «исключить» из проекта в настоящее время из-за значение- ,
Мне нужно добавить массив с объектом с {значением: 0}, потому что иначе этот объект будет проигнорирован после размотки.
{ $match: parameter},
{ $unwind : "$items" },
{ $project: {
itemName: '$items.name'},
itemValue : "$items.value",
discount : { $cond : [ { $eq : ["$items.discounts", [] ]}, [ { value : 0} ], '$items.discounts'] }
}},
{ $unwind: "$discount"},
Есть ли другие/более новые решения этой проблемы? Спасибо за помощь.
Можете ли вы изменить свой вопрос, чтобы включить некоторые примеры документов для тестирования и ожидаемый результат из этих документов? – chridam