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

mongodb establece el valor del campo usando if else durante la actualización del documento

MongoDB no admite el tipo de actualización condicional que está buscando. Sin embargo, aún puede hacerlo mejor que usar un enfoque de buscar, repetir y guardar.

Mueva la verificación de condición a update selector de consulta y luego emita dos actualizaciones (una para cada caso), usando {multi: true} para aplicar la actualización a todos los documentos coincidentes.

// Start with the "if" update
Documents.update(
    {some_condition: true, "some field": "some condition"}, 
    {$set: {"status": "value 1"}},
    {multi: true},
    function(err, numAffected) {
        // Now do the "else" update, using $ne to select the rest of the docs
        Documents.update(
            {some_condition: true, "some field": {$ne: "some condition"}}, 
            {$set: {"status": "value 2"}},
            {multi: true},
            function(err, numAffected) {
                // All done.
            }
        )
    }
)