Si el campo de nombre no está allí, intente:
db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})
$set
agregará un nuevo campo con el valor especificado, siempre que el nuevo campo no viole una restricción de tipo.
Si está allí y es nulo, o no tiene un valor establecido:
db.collection.update({"name": null}, {"$set": {"name": "test"}})
Puede combinar ambas consultas usando $or
como
db.collection.update(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
Para MongoDB 3.2 y superior, use updateMany()
que actualiza varios documentos dentro de la colección según el filtro:
db.collection.updateMany(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)