Con la versione MongoDB 3.2 e successive, il $unwind
operatore ora ha alcune opzioni in cui in particolare preserveNullAndEmptyArrays
l'opzione risolverà questo problema.
Se questa opzione è impostata su true e se il percorso è nullo, mancante o un array vuoto, $unwind
emette il documento. Se falso, $unwind
non genera un documento se il percorso è nullo, mancante o una matrice vuota. Nel tuo caso, impostalo su true:
db.collection.aggregate([
{ "$unwind": {
"path": "$solved",
"preserveNullAndEmptyArrays": true
} },
{ "$group": {
"_id": "$_id",
"login": { "$first": "$login" },
"solved": { "$sum": "$solved.points" }
} }
])