Je benadering is in principe correct. Ik zou zo'n verzameling echter niet als "enorm" beschouwen. Je kunt iets soortgelijks vanuit de shell uitvoeren:
coll.find({}).forEach(function (doc) {
doc.flag = Math.floor((Math.random()*2)+1);
coll.save(doc);
});
Afhankelijk van uw MongoDB-versie, configuratie en belasting, kan dit enkele minuten tot enkele uren duren
Als u deze update in bulk wilt uitvoeren, gebruik dan enkele voorwaarden in uw zoekdocument, bijvoorbeeld coll.find({"aFiled" : {$gt : minVal}, "aFiled" : {$lt : maxVal}})