MongoDB Tableau d'objets utilisant insert() avec exemple
โก Rรฉsumรฉ intelligent
MongoDB L'exemple ยซ Tableau d'objets utilisant insert() ยป montre comment ajouter plusieurs documents ร une collection en une seule opรฉration. Il stocke un tableau d'enregistrements d'employรฉs, intรจgre des tableaux dans un document et affiche les rรฉsultats de maniรจre claire grรขce ร la fonction JSON print.

Qu'est-ce que la mรฉthode insert() dans MongoDB?
La mรฉthode insert() dans MongoDB La fonction `insert()` ajoute un ou plusieurs documents ร une collection. Un document est un ensemble de paires champ-valeur stockรฉes au format BSON, une forme binaire de JSON. Lorsqu'un seul document est fourni, la fonction `insert()` l'insรจre. En revanche, si un tableau de documents est fourni, il est insรฉrรฉ en une seule opรฉration, ce qui est plus rapide que de les insรฉrer un par un.
La mรฉthode est exรฉcutรฉe sur une collection spรฉcifique en utilisant le modรจle db.collection.insert(). Si la collection cible n'existe pas encore, MongoDB Il est crรฉรฉ automatiquement lors de la premiรจre insertion. Chaque document reรงoit รฉgalement un champ _id unique si vous n'en fournissez pas, ce qui permet d'identifier chaque enregistrement ultรฉrieurement.
Bien que la fonction insert() fonctionne toujours, les nouvelles versions MongoDB Les versions ultรฉrieures proposent les fonctions `insertOne()` et `insertMany()` comme alternatives plus claires. Les exemples ci-dessous utilisent `insert()` pour ajouter un tableau de documents d'employรฉs, puis affichent les rรฉsultats dans un format JSON lisible.
Ajout d'un tableau de documents
La commande ยซ insรฉrer ยป peut รฉgalement รชtre utilisรฉe pour insรฉrer plusieurs documents dans une collection ร la fois. L'exemple de code ci-dessous peut รชtre utilisรฉ pour insรฉrer plusieurs documents ร la fois.
L'exemple suivant montre comment cela peut รชtre fait,
รtape 1) Crรฉer un Javascรฉnario variable appelรฉe myEmployee pour contenir le tableau de documents
รtape 2) Ajoutez les documents requis avec le nom du champ et les valeurs ร la variable
รtape 3) Utilisez la commande insert pour insรฉrer le tableau de documents dans la collection
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Si la commande est exรฉcutรฉe avec succรจs, la sortie suivante sera affichรฉe
Le rรฉsultat montre que ces 3 documents ont รฉtรฉ ajoutรฉs ร la collection.
Comment insรฉrer un tableau dans un document
Outre l'insertion d'un tableau de documents distincts, MongoDB permet de stocker un tableau comme champ au sein d'un seul document. Ceci est utile lorsqu'un enregistrement contient naturellement une liste de valeurs, comme un employรฉ possรฉdant plusieurs compรฉtences ou un รฉtudiant inscrit ร plusieurs cours. MongoDB utilise un modรจle de document flexible ; le tableau rรฉside directement dans lโobjet plutรดt que dans une table sรฉparรฉe, ce qui permet de regrouper les donnรฉes connexes.
L'exemple suivant insรจre un document employรฉ contenant un champ de type tableau appelรฉ Skills :
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Les diffรฉrentes parties de ce document fonctionnent comme suit :
- ID employรฉ et Nom de l'employรฉ ce sont des paires champ-valeur ordinaires.
- communication est un champ de type tableau qui contient trois valeurs de chaรฎne de caractรจres entre crochets.
- L'intรฉgralitรฉ du document, y compris le tableau intรฉgrรฉ, est stockรฉe en une seule opรฉration d'insertion.
Aprรจs avoir ajoutรฉ l'enregistrement, vous pouvez confirmer le tableau imbriquรฉ avec une requรชte de recherche qui affiche le rรฉsultat au format JSON :
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Le rรฉsultat affiche le tableau Skills imbriquรฉ dans le document employรฉ. LaterVous pouvez ajouter de nouvelles valeurs au tableau avec l'opรฉrateur `$push`, ou lire un รฉlรฉment unique par son index. Stocker les valeurs liรฉes de cette maniรจre garantit l'autonomie de chaque document, rรฉduit le besoin de jointures entre collections et facilite la lecture et la maintenance des donnรฉes.
insรฉrer() vs insรฉrerUn() vs insรฉrerPlusieurs()
MongoDB propose trois mรฉthodes apparentรฉes pour ajouter des donnรฉes. Le tableau ci-dessous les compare afin que vous puissiez choisir celle qui convient le mieux :
| Mรฉthode | Interet | Exemple |
|---|---|---|
| insรฉrer() | Mรฉthode hรฉritรฉe permettant d'ajouter un document unique ou un tableau de documents. Elle fonctionne encore, mais est obsolรจte dans les pilotes rรฉcents. | db.Employee.insert(myEmployee) |
| insรฉrerUn() | Ajoute un seul document et renvoie son identifiant (_id) insรฉrรฉ. ร privilรฉgier pour les enregistrements uniques. | db.Employee.insertOne({ โฆ }) |
| insรฉrerPlusieurs() | Ajoute un tableau de documents en un seul appel et renvoie tous les identifiants insรฉrรฉs. Recommandรฉ pour les insertions en masse. | db.Employee.insertMany([ { โฆ }, { โฆ } ]) |
Pour les nouveaux projets, utilisez `insertOne()` et `insertMany()` car elles indiquent plus clairement l'intention et fournissent de meilleurs rapports d'erreurs. La mรฉthode `insert()` reste disponible principalement pour assurer la compatibilitรฉ avec les anciens tutoriels et scripts.
Impression au format JSON
JSON est un format appelรฉ JavaNotation d'objet de script, et constitue simplement un moyen de stocker des informations de maniรจre organisรฉe et facile ร lire. Dans nos autres exemples, nous allons utiliser la fonctionnalitรฉ d'impression JSON pour voir la sortie dans un meilleur format.
Regardons un exemple d'impression au format JSON
db.Employee.find().forEach(printjson)
Code Explication:
- La premiรจre modification consiste ร ajouter la fonction `forEach()` ร la fonction `find()`. Cela permet de s'assurer que chaque document de la collection est parcouru explicitement. Ainsi, vous disposez d'un contrรดle plus prรฉcis sur les opรฉrations possibles sur chaque document.
- Le deuxiรจme changement consiste ร placer la commande printjson dans l'instruction forEach. Cela entraรฎnera l'affichage de chaque document de la collection au format JSON.
Si la commande est exรฉcutรฉe avec succรจs, la sortie suivante sera affichรฉe
Sortie :
Le rรฉsultat montre clairement que tous les documents sont imprimรฉs dans le style JSON.


