Váš přístup je v zásadě správný. Takovou sbírku bych však nepovažoval za „obrovskou“. Něco podobného můžete spustit z shellu:
coll.find({}).forEach(function (doc) {
doc.flag = Math.floor((Math.random()*2)+1);
coll.save(doc);
});
V závislosti na vaší verzi MongoDB, konfiguraci a zatížení to může trvat několik minut až několik hodin
Pokud chcete tuto aktualizaci provést hromadně, použijte některé podmínky v dokumentu dotazu, například coll.find({"aFiled" : {$gt : minVal}, "aFiled" : {$lt : maxVal}})