Als het naamveld er niet is, probeer dan:
db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})
$set
zal een nieuw veld met de opgegeven waarde toevoegen, op voorwaarde dat het nieuwe veld geen typebeperking schendt.
Als het daar is en null, of als er geen waarde is ingesteld:
db.collection.update({"name": null}, {"$set": {"name": "test"}})
U kunt beide zoekopdrachten combineren met $or
als
db.collection.update(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
Gebruik voor MongoDB 3.2 en hoger updateMany()
die meerdere documenten binnen de collectie bijwerkt op basis van het filter:
db.collection.updateMany(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)