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.

  • (I.e. Insertion en vrac : La méthode insert() ajoute un tableau de documents à une collection en une seule opération efficace.
  • 🧾 Modèle de document : Chaque document est un ensemble de paires champ-valeur, et MongoDB ajoute automatiquement un _id unique.
  • 🇧🇷 Tableaux imbriqués : Un tableau peut également exister en tant que champ à l'intérieur d'un document, keeping valeurs liées ensemble.
  • (I.e. Méthodes modernes : insertOne() et insertMany() sont les remplacements actuels et plus clairs de l'ancienne méthode insert().
  • 🇧🇷 Readable Sortie : La commande forEach(printjson) imprime chaque document dans un format JSON propre et facile à lire.

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

MongoDB Tableau d'objets utilisant insert()

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:

  1. 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.
  2. 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 :

Impression au format JSON

Le résultat montre clairement que tous les documents sont imprimés dans le style JSON.

FAQ

Oui. Passer un tableau de documents à la fonction `insert()` les ajoute tous en une seule opération. Cette insertion groupée est plus rapide que d'appeler `insert()` pour chaque document individuellement, même si `insertMany()` est désormais la méthode privilégiée.

Oui. Si un document ne contient pas de champ _id, MongoDB Lors de l'insertion, un ObjectId unique est automatiquement généré, permettant ainsi d'identifier et de récupérer ultérieurement chaque enregistrement stocké.

Par défaut, MongoDB Effectue une insertion ordonnée. Elle ajoute les documents dans l'ordre indiqué et s'arrête à la première erreur, laissant les documents restants non insérés. Si l'option « ordonné » est désactivée, l'insertion se poursuit malgré les erreurs.

Oui. Les outils d'IA peuvent transformer une description en langage naturel de vos données en instructions insertOne() ou insertMany(), y compris pour les tableaux imbriqués. Vérifiez toujours les champs et les types de données générés avant de les exécuter sur une base de données.

L'IA peut suggérer s'il convient d'intégrer des tableaux dans un document ou de référencer des collections distinctes, en fonction de vos requêtes. Cela permet aux débutants de modéliser efficacement les données tout en évitant les duplications inutiles ou une imbrication trop profonde.

Résumez cet article avec :