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

Java, MongoDB:Como atualizar todos os objetos enquanto itera uma coleção enorme?


Sua abordagem está basicamente correta. No entanto, eu não consideraria uma coleção como "enorme" Você pode executar algo semelhante no shell:
coll.find({}).forEach(function (doc) {
    doc.flag = Math.floor((Math.random()*2)+1);
    coll.save(doc);
 });

Dependendo da sua versão, configuração e carregamento do MongoDB, isso pode levar alguns minutos a várias horas

Se você deseja realizar essa atualização em massa, use algumas condições em seu documento de consulta, como coll.find({"aFiled" : {$gt : minVal}, "aFiled" : {$lt : maxVal}})