Se o campo de nome não estiver lá, tente:
db.collection.update({"name": {"$exists": false}}, {"$set": {"name": "test"}})
$set
adicionará um novo campo com o valor especificado, desde que o novo campo não viole uma restrição de tipo. Se estiver lá e nulo, ou não tiver um valor definido:
db.collection.update({"name": null}, {"$set": {"name": "test"}})
Você pode combinar as duas consultas usando
$ou
Como db.collection.update(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)
Para MongoDB 3.2 e superior, use
updateMany()
que atualiza vários documentos dentro da coleção com base no filtro:db.collection.updateMany(
{
"$or": [
{ "name": { "$exists": false } },
{ "name": null }
]
},
{ "$set": { "name": "test" } }
)