MongoDB Matrice de obiecte folosind insert() cu Exemplu

โšก Rezumat inteligent

MongoDB โ€žArray of Objectsโ€ folosind insert() aratฤƒ cum se adaugฤƒ mai multe documente la o colecศ›ie รฎntr-o singurฤƒ operaศ›iune. Stocheazฤƒ o matrice de รฎnregistrฤƒri ale angajaศ›ilor, รฎncorporeazฤƒ matrice รฎn interiorul unui document ศ™i afiศ™eazฤƒ rezultatele รฎn mod clar folosind funcศ›ia de imprimare JSON.

  • ๐Ÿ“ฅ Inserศ›ie รฎn vrac: Metoda insert() adaugฤƒ o matrice de documente la o colecศ›ie รฎntr-o singurฤƒ operaศ›ie eficientฤƒ.
  • ๐Ÿงพ Modelul documentului: Fiecare document este un set de perechi cรขmp-valoare ศ™i MongoDB adaugฤƒ automat un _id unic.
  • ๐Ÿ—‚๏ธ Matrici รฎncorporate: O matrice poate exista ศ™i ca un cรขmp รฎn interiorul unui document, keeping valori conexe รฎmpreunฤƒ.
  • ๐Ÿ” Metode moderne: insertOne() ศ™i insertMany() sunt รฎnlocuirile actuale ศ™i mai clare pentru metoda insert() existentฤƒ.
  • ๐Ÿ–จ๏ธ Readable ieศ™ire: Comanda forEach(printjson) imprimฤƒ fiecare document รฎntr-un format JSON curat ศ™i uศ™or de citit.

Ce este metoda insert() รฎn MongoDB?

Metoda insert() รฎn MongoDB adaugฤƒ unul sau mai multe documente la o colecศ›ie. Un document este un set de perechi cรขmp-valoare stocate รฎn BSON, o formฤƒ binarฤƒ de JSON. Cรขnd transmiteศ›i un singur document, insereazฤƒ() stocheazฤƒ acea รฎnregistrare; cรขnd transmiteศ›i o matrice de documente, le stocheazฤƒ pe toate รฎntr-o singurฤƒ operaศ›ie, ceea ce este mai rapid decรขt inserarea lor unul cรขte unul.

Metoda este executatฤƒ pe o colecศ›ie specificฤƒ folosind modelul db.collection.insert(). Dacฤƒ colecศ›ia ศ›intฤƒ nu existฤƒ รฎncฤƒ, MongoDB รฎl creeazฤƒ automat la prima inserare. Fiecare document primeศ™te ศ™i un cรขmp _id unic dacฤƒ nu furnizaศ›i unul, astfel รฎncรขt fiecare รฎnregistrare sฤƒ poatฤƒ fi identificatฤƒ ulterior.

Deศ™i insert() รฎncฤƒ funcศ›ioneazฤƒ, mai noi MongoDB Versiunile oferฤƒ insertOne() ศ™i insertMany() ca รฎnlocuiri mai clare. Exemplele de mai jos utilizeazฤƒ insert() pentru a adฤƒuga o matrice de documente ale angajaศ›ilor ศ™i apoi afiศ™eazฤƒ rezultatele รฎntr-un format JSON lizibil.

Adฤƒugarea unei serii de documente

Comanda โ€žinserareโ€ poate fi folositฤƒ ศ™i pentru a insera mai multe documente รฎntr-o colecศ›ie simultan. Exemplul de cod de mai jos poate fi folosit pentru a introduce mai multe documente simultan.

Urmฤƒtorul exemplu aratฤƒ cum se poate face acest lucru,

Pas 1) Crearea unei JavaScenariu variabila numitฤƒ myEmployee pentru a deศ›ine matricea de documente

Pas 2) Adฤƒugaศ›i documentele necesare cu numele cรขmpului ศ™i valori la variabilฤƒ

Pas 3) Utilizaศ›i comanda insert pentru a insera matricea de documente รฎn colecศ›ie

var myEmployee=
	[
		{
			"Employeeid" : 1,
			"EmployeeName" : "Smith"
		},
		{
			"Employeeid"   : 2,
			"EmployeeName" : "Mohan"
		},
		{
			"Employeeid"   : 3,
			"EmployeeName" : "Joe"
		},
	];

	db.Employee.insert(myEmployee);

Dacฤƒ comanda este executatฤƒ cu succes, va fi afiศ™atฤƒ urmฤƒtoarea ieศ™ire

MongoDB Matrice de obiecte folosind insert()

Rezultatul aratฤƒ cฤƒ acele 3 documente au fost adฤƒugate la colecศ›ie.

Cum se insereazฤƒ o matrice รฎntr-un document

Pe lรขngฤƒ inserarea unei serii de documente separate, MongoDB vฤƒ permite sฤƒ stocaศ›i o matrice ca ศ™i cรขmp รฎntr-un singur document. Acest lucru este util atunci cรขnd o รฎnregistrare conศ›ine รฎn mod natural o listฤƒ de valori, cum ar fi un angajat care are mai multe competenศ›e sau un student รฎnscris la mai multe cursuri. Deoarece MongoDB utilizeazฤƒ un model de document flexibil, matricea se aflฤƒ direct รฎn interiorul obiectului, mai degrabฤƒ decรขt รฎntr-un tabel separat, ceea ce pฤƒstreazฤƒ datele corelate รฎmpreunฤƒ.

Urmฤƒtorul exemplu insereazฤƒ un document de angajat care conศ›ine un cรขmp matrice numit Competenศ›e:

db.Employee.insert(
   {
      "Employeeid" : 4,
      "EmployeeName" : "Alan",
      "Skills" : [ "MongoDB", "Node.js", "Express" ]
   }
);

Pฤƒrศ›ile acestui document funcศ›ioneazฤƒ dupฤƒ cum urmeazฤƒ:

  • ID angajat ศ™i Numele angajatului sunt perechi obiศ™nuite cรขmp-valoare.
  • Aptitudini este un cรขmp de tip matrice care conศ›ine trei valori ศ™ir de caractere รฎntre paranteze pฤƒtrate.
  • รŽntregul document, inclusiv matricea รฎncorporatฤƒ, este stocat รฎntr-o singurฤƒ operaศ›ie de inserare.

Dupฤƒ adฤƒugarea รฎnregistrฤƒrii, puteศ›i confirma matricea รฎncorporatฤƒ cu o interogare de cฤƒutare care afiศ™eazฤƒ rezultatul รฎn JSON:

db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)

Rezultatul aratฤƒ matricea Skills imbricatฤƒ รฎn documentul angajatului. Later, puteศ›i adฤƒuga valori noi รฎn matrice cu operatorul $push sau puteศ›i citi un singur element dupฤƒ poziศ›ia sa รฎn index. Stocarea valorilor conectate รฎn acest fel menศ›ine fiecare document autonom, reduce nevoia de joncศ›iuni รฎntre colecศ›ii ศ™i faciliteazฤƒ citirea ศ™i รฎntreศ›inerea datelor.

insereazฤƒ() vs. insereazฤƒUnul() vs. insereazฤƒMulte()

MongoDB oferฤƒ trei metode corelate pentru adฤƒugarea de date. Tabelul de mai jos le comparฤƒ, astfel รฎncรขt sฤƒ o puteศ›i alege pe cea potrivitฤƒ:

Metodฤƒ Scop Exemplu
introduce() Metodฤƒ moศ™tenitฤƒ care adaugฤƒ un singur document sau o matrice de documente. รŽncฤƒ funcศ›ioneazฤƒ, dar este depreciatฤƒ รฎn driverele mai noi. db.Angajat.insert(angajatulmeu)
insertOne() Adaugฤƒ exact un document ศ™i returneazฤƒ _id-ul sฤƒu introdus. Preferat pentru รฎnregistrฤƒri individuale. db.Angajat.insertOne({ โ€ฆ })
insertMany() Adaugฤƒ o matrice de documente รฎntr-un singur apel ศ™i returneazฤƒ toate _id-urile inserate. Preferat pentru inserฤƒri รฎn bloc. db.Angajat.insertMany([ { โ€ฆ }, { โ€ฆ } ])

Pentru proiecte noi, folosiศ›i insertOne() ศ™i insertMany() deoarece oferฤƒ o intenศ›ie mai clarฤƒ ศ™i o raportare mai bunฤƒ a erorilor. Metoda insert() rฤƒmรขne disponibilฤƒ รฎn principal pentru compatibilitate inversฤƒ cu tutorialele ศ™i scripturile mai vechi.

Imprimare รฎn format JSON

JSON este un format numit JavaNotarea obiectului script, ศ™i este doar o modalitate de a stoca informaศ›ii รฎntr-un mod organizat, uศ™or de citit. รŽn exemplele noastre ulterioare, vom folosi funcศ›ionalitatea de imprimare JSON pentru a vedea rezultatul รฎntr-un format mai bun.

Sฤƒ ne uitฤƒm la un exemplu de tipฤƒrire รฎn format JSON

db.Employee.find().forEach(printjson)

Code Explicaลฃie:

  1. Prima modificare este adฤƒugarea funcศ›iei numite forEach() la funcศ›ia find(). Aceasta se asigurฤƒ cฤƒ parcurge explicit fiecare document din colecศ›ie. รŽn acest fel, aveศ›i mai mult control asupra a ceea ce puteศ›i face cu fiecare dintre documentele din colecศ›ie.
  2. A doua modificare este sฤƒ puneศ›i comanda printjson รฎn instrucศ›iunea forEach. Acest lucru va face ca fiecare document din colecศ›ie sฤƒ fie afiศ™at รฎn format JSON.

Dacฤƒ comanda este executatฤƒ cu succes, va fi afiศ™atฤƒ urmฤƒtoarea ieศ™ire

ieศ™ire:

Imprimare รฎn format JSON

Rezultatul aratฤƒ clar cฤƒ toate documentele sunt tipฤƒrite รฎn stil JSON.

รŽntrebฤƒri frecvente

Da. Transmiterea unei matrice de documente cฤƒtre insert() le adaugฤƒ pe toate รฎntr-o singurฤƒ operaศ›ie. Aceastฤƒ inserare รฎn bloc este mai rapidฤƒ decรขt apelarea insert() separat pentru fiecare document, deศ™i insertMany() este acum metoda preferatฤƒ.

Da. Dacฤƒ un document nu include un cรขmp _id, MongoDB genereazฤƒ automat un ObjectId unic รฎn timpul inserฤƒrii, astfel รฎncรขt fiecare รฎnregistrare stocatฤƒ sฤƒ poatฤƒ fi identificatฤƒ ศ™i recuperatฤƒ ulterior.

รŽn mod implicit, MongoDB efectueazฤƒ o inserare ordonatฤƒ. Adaugฤƒ documente รฎn ordinea datฤƒ ศ™i se opreศ™te la prima eroare, lฤƒsรขnd documentele rฤƒmase neinserate. Setarea funcศ›iei ordered la false continuฤƒ ศ™i dupฤƒ erori.

Da. Instrumentele de inteligenศ›ฤƒ artificialฤƒ pot transforma o descriere รฎn limbaj simplu a datelor dvs. รฎn instrucศ›iuni insertOne() sau insertMany(), inclusiv matrice รฎncorporate. Verificaศ›i รฎntotdeauna cรขmpurile ศ™i tipurile de date generate รฎnainte de a le rula รฎntr-o bazฤƒ de date.

IA poate sugera dacฤƒ sฤƒ se integreze matrice รฎntr-un document sau sฤƒ se facฤƒ referire la colecศ›ii separate, pe baza modelelor de interogare. Acest lucru รฎi ajutฤƒ pe รฎncepฤƒtori sฤƒ modeleze datele eficient, evitรขnd รฎn acelaศ™i timp duplicarea inutilฤƒ sau imbricarea excesiv de profundฤƒ.

Rezumaศ›i aceastฤƒ postare cu: