Hvis navnefeltet ikke er der, prøv:
db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})
$set
vil tilføje et nyt felt med den angivne værdi, forudsat at det nye felt ikke overtræder en type begrænsning.
Hvis det er der og null, eller ikke har en værdisæt:
db.collection.update({"name": null}, {"$set": {"name": "test"}})
Du kan kombinere begge forespørgsler ved hjælp af $or
som
db.collection.update(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
For MongoDB 3.2 og nyere, brug updateMany()
som opdaterer flere dokumenter i samlingen baseret på filteret:
db.collection.updateMany(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)