MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Java, MongoDB:come aggiornare ogni oggetto durante l'iterazione di una vasta raccolta?

Il tuo approccio è sostanzialmente corretto. Tuttavia non considererei una tale raccolta come "enorme" Puoi eseguire qualcosa di simile dalla shell:

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

A seconda della versione, della configurazione e del carico di MongoDB, l'operazione potrebbe richiedere da pochi minuti a diverse ore

Se desideri eseguire questo aggiornamento in blocco, utilizza alcune condizioni nel documento di query, ad esempio coll.find({"aFiled" : {$gt : minVal}, "aFiled" : {$lt : maxVal}})