Con la versión 3.2 de MongoDB y posteriores, $unwind
El operador ahora tiene algunas opciones donde, en particular, preserveNullAndEmptyArrays
La opción resolverá esto.
Si esta opción se establece en verdadero y si la ruta es nula, falta o una matriz vacía, $unwind
emite el documento. Si es falso, $unwind
no genera un documento si la ruta es nula, falta o una matriz vacía. En su caso, configúrelo como verdadero:
db.collection.aggregate([
{ "$unwind": {
"path": "$solved",
"preserveNullAndEmptyArrays": true
} },
{ "$group": {
"_id": "$_id",
"login": { "$first": "$login" },
"solved": { "$sum": "$solved.points" }
} }
])