S verzí MongoDB 3.2 a novější, $unwind
operátor má nyní několik možností, kde zejména preserveNullAndEmptyArrays
možnost to vyřeší.
Pokud je tato možnost nastavena na hodnotu true a pokud je cesta nulová, chybí nebo je prázdné pole, $unwind
vypíše dokument. Pokud je nepravda, $unwind
nevypíše dokument, pokud je cesta nulová, chybí nebo je prázdné pole. Ve vašem případě jej nastavte na hodnotu true:
db.collection.aggregate([
{ "$unwind": {
"path": "$solved",
"preserveNullAndEmptyArrays": true
} },
{ "$group": {
"_id": "$_id",
"login": { "$first": "$login" },
"solved": { "$sum": "$solved.points" }
} }
])