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

J'ai une collection d'environ 1 million de disques avec plus de 20 champs de chacun. J'ai besoin de mettre à jour entier flag champ de chaque enregistrement (document) l'affectation au hasard 1 ou 2 de la présente flag champ.
Comment faire lors de l'itération curseur sur la collection complète? Il ne semble pas être une bonne idée de rechercher deuxième fois pour objet déjà trouvé par MongoDB juste pour être en mesure de le mettre à jour:

  DBCursor cursor = coll.find();
  try {
     while(cursor.hasNext()) {
    BasicDBObject obj = (BasicDBObject) cursor.next();
    ...
    coll.update(query,newObj)

     }
  } finally {
     cursor.close();
  }

Comment mettre à jour un champ dans chaque document d'une énorme collection de MongoDB avec des valeurs différentes de manière efficace?

Vous pouvez mettre à jour tous les documents (qui correspondent à une condition spécifique) dans une seule requête avec le 'multi' drapeau 'mise à jour' de la commande définie sur true. Vérifiez ceci: stackoverflow.com/questions/4146452/...
Je ne peux pas utiliser multi drapeau parce que j'ai mise à jour de chaque document avec la valeur unique. Ce n'est pas la même chose que la mise à jour de nombreux documents avec une seule et même valeur.
https://stackoverflow.com/questions/4146452/mongodb-what-is-the-fastest-way-to-update-all-records-in-a-collection/50768815#50768815 j'ai répondu là-bas. Espérons que cela aide.

OriginalL'auteur Anton Ashanin | 2013-04-12