MongoDB est une base de données NoSQL open source qui prend en charge différentes formes de données. L'une de ses fonctionnalités les plus remarquables est la possibilité d'insérer plusieurs documents à la fois. Cela peut être particulièrement utile lorsque vous devez remplir votre base de données avec plusieurs enregistrements à la fois. Dans ce chapitre, nous explorerons comment insérer plusieurs documents dans MongoDB.
Pour commencer, nous devons comprendre comment les documents sont structurés dans MongoDB. Contrairement aux bases de données relationnelles, où les données sont stockées dans des tables, dans MongoDB, les données sont stockées dans des collections. Chaque document d'une collection est un objet JSON, qui peut contenir plusieurs paires clé-valeur.
Pour insérer plusieurs documents, vous pouvez utiliser la méthode `insertMany()`. Cette méthode accepte un tableau d'objets et insère tous ces objets dans la collection spécifiée. Regardons un exemple. Supposons que nous ayons une collection appelée « utilisateurs » et que nous souhaitions insérer trois nouveaux utilisateurs. Voici comment procéder :
```javascript db.users.insertMany([ { nom : 'Alice', âge : 25, e-mail : 'alice@example.com' }, { nom : 'Bob', âge : 30 ans, e-mail : 'bob@example.com' }, { nom : 'Charlie', âge : 35, e-mail : 'charlie@example.com' } ]) ```Après avoir exécuté cette commande, MongoDB insérera les trois documents dans la collection « utilisateurs ». Si l'opération réussit, MongoDB renvoie un objet qui contient le statut de l'opération et les `_id` des documents insérés.
Il est important de noter que MongoDB génère automatiquement un « _id » pour chaque document que vous insérez, sauf si vous en spécifiez un. Le `_id` est un identifiant unique pour chaque document, et MongoDB garantit qu'au sein d'une collection, il ne peut y avoir deux documents avec le même `_id`.
Si vous essayez d'insérer plusieurs documents avec le même `_id`, MongoDB générera une erreur et annulera l'opération d'insertion. Aucun des documents ne sera inséré. Par conséquent, il est important de s'assurer que chaque document possède un « _id » unique.
La méthode `insertMany()` accepte également un deuxième argument facultatif, qui est un objet d'options. Cet objet peut contenir plusieurs options, telles que « ordered » et « writeConcern ». L'option `ordered` est un booléen qui détermine si MongoDB doit insérer les documents dans l'ordre dans lequel ils apparaissent dans le tableau. Si `ordered` est `true` (valeur par défaut), MongoDB arrêtera l'opération d'insertion dès qu'il rencontrera une erreur (telle qu'un `_id` en double). Si `ordered` est `false`, MongoDB tentera d'insérer tous les documents, même s'il rencontre des erreurs.
L'option `writeConcern` contrôle la garantie d'écriture de MongoDB. Vous pouvez spécifier le nombre d'instances qui doivent valider l'opération d'insertion avant qu'elle soit considérée comme terminée. Par exemple, si vous disposez d'un cluster de trois instances MongoDB, vous pouvez définir « writeConcern » sur « 2 » pour garantir qu'au moins deux instances valident l'opération.
En résumé, l'insertion de plusieurs documents dans MongoDB est une tâche simple mais puissante. Avec la méthode `insertMany()`, vous pouvez rapidement remplir votre base de données avec de nombreux enregistrements. Cependant, il est important d'être conscient des implications de l'insertion de documents avec le même « _id » et de la façon dont les options « ordered » et « writeConcern » peuvent affecter l'opération d'insertion.