Avec la version 3.2 de MongoDB et les versions plus récentes, le $unwind
l'opérateur a maintenant quelques options où en particulier le preserveNullAndEmptyArrays
l'option résoudra ce problème.
Si cette option est définie sur true et si le chemin est nul, manquant ou un tableau vide, $unwind
sort le document. Si faux, $unwind
ne génère pas de document si le chemin est nul, manquant ou un tableau vide. Dans votre cas, définissez-le sur true :
db.collection.aggregate([
{ "$unwind": {
"path": "$solved",
"preserveNullAndEmptyArrays": true
} },
{ "$group": {
"_id": "$_id",
"login": { "$first": "$login" },
"solved": { "$sum": "$solved.points" }
} }
])