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.

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
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:
- 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.
- 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:
Rezultatul aratฤ clar cฤ toate documentele sunt tipฤrite รฎn stil JSON.


