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

Como limitar o número de documentos de atualização no mongodb


Você pode 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 o código forEach:MongoDB:Atualizando documentos usando dados do mesmo documento)

O que isso fará é apenas alterar o número de entradas que você especificar. Então, se você quiser adicionar um campo chamado "newField" com valor 1 a apenas metade de suas entradas dentro de "collection", por exemplo, você pode colocar
db.collection.find().limit(db.collection.count() / 2).forEach(
    function (e) {
        e.newField = 1;
        db.collection.save(e);
    }
);

Se você quiser fazer com que a outra metade também tenha "newField" mas com valor 2, você pode fazer uma atualização com a condição de que newField não exista:
db.collection.update( { newField : { $exists : false } }, { $set : { newField : 2 } }, {multi : true} );