MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

$unwind array vuoto

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" }
    } }
])