sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongo actualiza todos los registros con un campo que es nulo

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