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

Mongo aktualisiert alle Datensätze mit einem Feld, das null ist

Wenn das Namensfeld nicht vorhanden ist, versuchen Sie Folgendes:

db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})

$set fügt ein neues Feld mit dem angegebenen Wert hinzu, vorausgesetzt, dass das neue Feld keine Typbeschränkung verletzt.

Wenn es vorhanden und null ist oder keinen Wert hat:

db.collection.update({"name": null}, {"$set": {"name": "test"}})

Sie können beide Abfragen mit $or als

db.collection.update(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)

Verwenden Sie für MongoDB 3.2 und höher updateMany() die mehrere Dokumente innerhalb der Sammlung basierend auf dem Filter aktualisiert:

db.collection.updateMany(
    {
        "$or": [
            { "name": { "$exists": false } }, 
            { "name": null }
        ]
    }, 
    { "$set": { "name": "test" } }
)