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}})