MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongo atualiza todos os registros com um campo nulo


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" } }
)