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.



