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

Cómo limitar el número de documentos de actualización en mongodb

Puedes usar:

db.collection.find().limit(NUMBER_OF_ITEMS_YOU_WANT_TO_UPDATE).forEach(
    function (e) {
        e.fieldToChange = "blah";
        ....
        db.collection.save(e);
    }
);

(Créditos para cada código:MongoDB:Actualización de documentos utilizando datos del mismo documento)

Lo que esto hará es solo cambiar el número de entradas que especifique. Entonces, si desea agregar un campo llamado "nuevo campo" con valor 1 a solo la mitad de sus entradas dentro de "colección", por ejemplo, puede ingresar

db.collection.find().limit(db.collection.count() / 2).forEach(
    function (e) {
        e.newField = 1;
        db.collection.save(e);
    }
);

Si luego desea que la otra mitad también tenga "newField" pero con valor 2, puede hacer una actualización con la condición de que newField no exista:

db.collection.update( { newField : { $exists : false } }, { $set : { newField : 2 } }, {multi : true} );