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.


