Dans MongoDB, le db.collection.insertMany()
méthode insère plusieurs documents dans une collection.
La collection
part est le nom de la collection dans laquelle insérer les documents.
Exemple
Voici un exemple d'utilisation de db.collection.insertMany()
pour insérer plusieurs documents dans une collection appelée pets
:
db.pets.insertMany([
{ _id: 1, name: "Wag", type: "Dog" },
{ _id: 2, name: "Bark", type: "Dog" },
{ _id: 3, name: "Meow", type: "Cat" }
])
Résultat :
{ "acknowledged" : true, "insertedIds" : [ 1, 2, 3 ] }
Le db.collection.insertMany()
méthode renvoie un document contenant :
- Un booléen
acknowledged
commetrue
si l'opération s'est exécutée avec un souci d'écriture oufalse
si la préoccupation d'écriture était désactivée. - Un tableau de
_id
valeurs pour chaque document inséré avec succès.
Maintenant, si nous utilisons db.collection.find()
pour regarder la collection, nous verrons les documents nouvellement ajoutés.
db.pets.find()
Résultat :
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Dans ce cas, nos trois documents sont les seuls de la collection, et donc seuls ces documents ont été restitués.
Cependant, si la collection était importante, nous pourrions utiliser les ID de document pour limiter le résultat aux seuls documents qui nous intéressent.
db.pets.find({_id: {$in: [1,2,3]}})
Résultat :
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" }
Et si la collection n'existe pas ?
Si la collection n'existe pas, elle est créée et les documents y sont ajoutés.
Si la collection existe déjà, alors les documents y sont simplement ajoutés (à condition de leur _id
les valeurs ne sont pas en conflit avec celles existantes).
Lorsque j'ai créé cet exemple, la collection n'existait pas et l'opération d'insertion l'a donc créée.
Le _id
Champ
Le _id
field est un champ d'identifiant unique dans MongoDB.
Comme démontré dans l'exemple précédent, vous pouvez fournir votre propre _id
champ dans le document. Si vous le faites, sa valeur doit être unique dans la collection. C'est parce que votre _id
sera utilisé comme identifiant unique du document.
Voici un exemple d'insertion de documents sans fournir le _id
champs.
db.pets.insertMany([
{ name: "Bruce", type: "Bat" },
{ name: "Sweetie", type: "Honey Badger" }
])
Résultat :
{ "acknowledged" : true, "insertedIds" : [ ObjectId("5fe30ef737b49e0faf1af215"), ObjectId("5fe30ef737b49e0faf1af216") ] }
Le _id
les valeurs des documents sont renvoyées. Nous pourrions les utiliser pour rechercher dans la collection uniquement les documents que nous avons insérés.
Mais dans ce cas, regardons toute la collection.
db.pets.find()
Résultat :
{ "_id" : 1, "name" : "Wag", "type" : "Dog" } { "_id" : 2, "name" : "Bark", "type" : "Dog" } { "_id" : 3, "name" : "Meow", "type" : "Cat" } { "_id" : ObjectId("5fe30ef737b49e0faf1af215"), "name" : "Bruce", "type" : "Bat" } { "_id" : ObjectId("5fe30ef737b49e0faf1af216"), "name" : "Sweetie", "type" : "Honey Badger" }
Nous pouvons voir que nos deux nouveaux documents sont inclus dans la collection.
Le ordered
Paramètre
Le db.collection.insertMany()
la méthode accepte également un ordered
paramètre. Ceci est un paramètre booléen avec une valeur par défaut de true
.
Le ordered
paramètre spécifie si l'opération d'insertion doit être ordonnée ou non.
Si ordered
est défini sur false
, les documents sont insérés dans un format non ordonné et peuvent être réorganisés par mongod
pour augmenter les performances.
Avec les insertions ordonnées, si une erreur se produit lors de l'insertion d'un des documents, MongoDB retourne sur erreur sans traiter les documents restants du tableau.
Avec des insertions non ordonnées, si une erreur se produit lors de l'insertion d'un des documents, MongoDB continue d'insérer les documents restants dans le tableau.
Plus d'informations
Le db.collection.insertMany()
la méthode accepte également un writeConcern
argument, qui décrit le niveau d'accusé de réception demandé à MongoDB pour les opérations d'écriture.
Voir la documentation MongoDB pour db.collection.insertMany()
pour plus d'informations.