MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Java, MongoDB:Wie aktualisiere ich jedes Objekt, während ich eine riesige Sammlung iteriere?

Ihr Ansatz ist im Grunde richtig. Allerdings würde ich eine solche Sammlung nicht als "riesig" betrachten. Sie können etwas Ähnliches von der Shell aus ausführen:

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

Abhängig von Ihrer MongoDB-Version, -Konfiguration und -Auslastung kann dies zwischen einigen Minuten und mehreren Stunden dauern

Wenn Sie diese Aktualisierung in großen Mengen durchführen möchten, verwenden Sie einige Bedingungen in Ihrem Abfragedokument, z. B. coll.find({"aFiled" : {$gt : minVal}, "aFiled" : {$lt : maxVal}})