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

Java, MongoDB:¿Cómo actualizar cada objeto mientras se itera una gran colección?

Su enfoque es básicamente correcto. Sin embargo, no consideraría una colección de este tipo como "enorme". Puede ejecutar algo similar desde el shell:

coll.find({}).forEach(function (doc) {
    doc.flag = Math.floor((Math.random()*2)+1);
    coll.save(doc);
 });

Dependiendo de su versión, configuración y carga de MongoDB, esto puede demorar entre unos minutos y varias horas

Si desea realizar esta actualización en masa, use algunas condiciones en su documento de consulta, algo como coll.find({"aFiled" : {$gt : minVal}, "aFiled" : {$lt : maxVal}})