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