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 :