MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Java, MongoDB :comment mettre à jour chaque objet lors de l'itération d'une énorme collection ?

Votre approche est fondamentalement correcte.Cependant, je ne considérerais pas une telle collection comme "énorme".Vous pouvez exécuter quelque chose de similaire à partir du shell :

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

Selon votre version, votre configuration et votre charge de MongoDB, cela peut prendre entre quelques minutes et plusieurs heures

Si vous souhaitez effectuer cette mise à jour en masse, utilisez certaines conditions dans votre document de requête, telles que coll.find({"aFiled" : {$gt : minVal}, "aFiled" : {$lt : maxVal}})