С MongoDB 3.2 и по-нова версия, $unwind
операторът вече има някои опции, където по-специално preserveNullAndEmptyArrays
опцията ще реши това.
Ако тази опция е зададена на true и ако пътят е нулев, липсва или е празен масив, $unwind
извежда документа. Ако е false, $unwind
не извежда документ, ако пътят е нулев, липсва или е празен масив. Във вашия случай го задайте на true:
db.collection.aggregate([
{ "$unwind": {
"path": "$solved",
"preserveNullAndEmptyArrays": true
} },
{ "$group": {
"_id": "$_id",
"login": { "$first": "$login" },
"solved": { "$sum": "$solved.points" }
} }
])