Se il campo del nome non è presente, prova:
db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})
$set
aggiungerà un nuovo campo con il valore specificato, a condizione che il nuovo campo non violi un vincolo di tipo.
Se è presente e nullo o non ha un valore impostato:
db.collection.update({"name": null}, {"$set": {"name": "test"}})
Puoi combinare entrambe le query utilizzando $or
come
db.collection.update(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
Per MongoDB 3.2 e versioni successive, utilizzare updateMany()
che aggiorna più documenti all'interno della raccolta in base al filtro:
db.collection.updateMany(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)