Ce chapitre présente les opérations groupées (bulkWrite) sur les données de documents MongoDB en utilisant l'interpréteur mongo. Ici, les opérations groupées font référence non seulement à la mise à jour groupée de documents mentionnée dans les chapitres précédents, mais incluent également la prise en charge de l'exécution groupée d'opérations d'écriture, notamment l'insertion, la mise à jour et la suppression de documents.

La fonction bulkWrite est utilisée pour les opérations groupées dans l'interpréteur mongo.

Astuce : Les opérations groupées sont souvent utilisées dans des scénarios nécessitant une synchronisation de données en masse.

Opérations d'écriture prises en charge par la fonction bulkWrite

Les opérations groupées prennent en charge les combinaisons suivantes d'opérations d'écriture :

  • insertOne - Insérer un document
  • updateOne - Mettre à jour un document
  • updateMany - Mettre à jour un lot de documents
  • replaceOne - Remplacer un document
  • deleteOne - Supprimer un document
  • deleteMany - Supprimer un lot de documents

Format de syntaxe

db.collection.bulkWrite(
   [ <opération 1>, <opération 2>, ... ],
)

Explication :

  • operation - Représente la configuration de l'opération d'écriture
  • bulkWrite accepte un tableau d'opérations d'écriture.

Exemple

Voici un exemple complet montrant l'exécution groupée d'un ensemble d'opérations d'écriture de documents.

db.inventory.bulkWrite(
      [
	     // Insérer un document
         { insertOne :
            {
			// Contenu du document
               "document" :
               {
                  "_id" : 4, "char" : "Dithras", "class" : "barbare", "lvl" : 4
               }
            }
         },
         { insertOne :
            {
               "document" :
               {
                  "_id" : 5, "char" : "Taeln", "class" : "combattant", "lvl" : 3
               }
            }
         },
		 // Mettre à jour un document, updateMany est similaire pour mettre à jour un lot de documents
         { updateOne :
            {
			   // Condition de mise à jour
               "filter" : { "char" : "Eldon" },
			   // Contenu de la mise à jour
               "update" : { $set : { "status" : "Blessure critique" } }
            }
         },
		 // Supprimer un document, deleteMany est similaire pour supprimer plusieurs documents
         { deleteOne :
		    // Condition de suppression
            { "filter" : { "char" : "Brisbane" } }
         },
		 // Remplacer un document
         { replaceOne :
            {
			    // Condition de remplacement
               "filter" : { "char" : "Meldane" },
			   // Contenu de remplacement
               "replacement" : { "char" : "Tanys", "class" : "oracle", "lvl" : 4 }
            }
         }
      ]
   );