Med MongoDB 3.2 version och nyare, $unwind
operatorn har nu några alternativ där särskilt preserveNullAndEmptyArrays
alternativet löser detta.
Om det här alternativet är inställt på sant och om sökvägen är null, saknas eller en tom array, $unwind
matar ut dokumentet. Om falskt, $unwind
matar inte ut ett dokument om sökvägen är null, saknas eller en tom array. I ditt fall, ställ in den på sant:
db.collection.aggregate([
{ "$unwind": {
"path": "$solved",
"preserveNullAndEmptyArrays": true
} },
{ "$group": {
"_id": "$_id",
"login": { "$first": "$login" },
"solved": { "$sum": "$solved.points" }
} }
])