MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

$unwind leeres Array

Bei MongoDB Version 3.2 und höher wird die Datei $unwind Der Operator hat jetzt einige Optionen, insbesondere preserveNullAndEmptyArrays Option wird dieses Problem lösen.

Wenn diese Option auf „true“ gesetzt ist und der Pfad null ist, fehlt oder ein leeres Array ist, wird $unwind gibt das Dokument aus. Wenn falsch, $unwind gibt kein Dokument aus, wenn der Pfad null ist, fehlt oder ein leeres Array ist. Setzen Sie es in Ihrem Fall auf true:

db.collection.aggregate([
    { "$unwind": {
            "path": "$solved",
            "preserveNullAndEmptyArrays": true
    } },
    { "$group": {
        "_id": "$_id",
        "login": { "$first": "$login" },
        "solved": { "$sum": "$solved.points" }
    } }
])