MongoDB Niz objekata pomoću insert() s primjerom
⚡ Pametni sažetak
MongoDB Niz objekata korištenjem insert() funkcije pokazuje kako dodati nekoliko dokumenata u kolekciju jednom operacijom. Pohranjuje niz zapisa zaposlenika, ugrađuje nizove unutar dokumenta i uredno prikazuje rezultate pomoću JSON funkcije print.

Što je metoda insert() u MongoDB?
Metoda insert() u MongoDB dodaje jedan ili više dokumenata u kolekciju. Dokument je skup parova polja i vrijednosti pohranjenih u BSON-u, binarnom obliku JSON-a. Kada proslijedite jedan dokument, insert() pohranjuje taj jedan zapis; kada proslijedite niz dokumenata, pohranjuje ih sve u jednoj operaciji, što je brže od umetanja jednog po jednog.
Metoda se izvršava na određenoj kolekciji pomoću uzorka db.collection.insert(). Ako ciljna kolekcija još ne postoji, MongoDB automatski ga stvara tijekom prvog umetanja. Svaki dokument također dobiva jedinstveno polje _id ako ga ne navedete, tako da se svaki zapis može kasnije identificirati.
Iako insert() još uvijek radi, noviji MongoDB Verzije pružaju insertOne() i insertMany() kao jasnije zamjene. Primjeri u nastavku koriste insert() za dodavanje niza dokumenata zaposlenika, a zatim prikaz rezultata u čitljivom JSON formatu.
Dodavanje niza dokumenata
Naredba "insert" također se može koristiti za umetanje više dokumenata u zbirku odjednom. Primjer koda u nastavku može se koristiti za umetanje više dokumenata odjednom.
Sljedeći primjer pokazuje kako se to može učiniti,
Korak 1) Napravite JavaScript varijabla pod nazivom myEmployee za držanje niza dokumenata
Korak 2) Dodajte potrebne dokumente s nazivom polja i vrijednostima u varijablu
Korak 3) Koristite naredbu insert za umetanje niza dokumenata u zbirku
var myEmployee= [ { "Employeeid" : 1, "EmployeeName" : "Smith" }, { "Employeeid" : 2, "EmployeeName" : "Mohan" }, { "Employeeid" : 3, "EmployeeName" : "Joe" }, ]; db.Employee.insert(myEmployee);
Ako je naredba uspješno izvršena, prikazat će se sljedeći izlaz
Izlaz pokazuje da su ta 3 dokumenta dodana u zbirku.
Kako umetnuti niz unutar dokumenta
Osim umetanja niza zasebnih dokumenata, MongoDB omogućuje vam pohranjivanje niza kao polja unutar jednog dokumenta. To je korisno kada jedan zapis prirodno sadrži popis vrijednosti, kao što je zaposlenik koji ima nekoliko vještina ili student upisan na više tečajeva. Jer MongoDB koristi fleksibilni model dokumenta, niz se nalazi izravno unutar objekta, a ne u zasebnoj tablici, što povezane podatke drži zajedno.
Sljedeći primjer umeće jedan dokument zaposlenika koji sadrži polje polja pod nazivom Vještine:
db.Employee.insert( { "Employeeid" : 4, "EmployeeName" : "Alan", "Skills" : [ "MongoDB", "Node.js", "Express" ] } );
Dijelovi ovog dokumenta funkcioniraju na sljedeći način:
- ID zaposlenika i Ime zaposlenika su obični parovi polja i vrijednosti.
- Vještine je polje polja koje sadrži tri string vrijednosti unutar uglatih zagrada.
- Cijeli dokument, uključujući ugrađeni niz, pohranjuje se u jednoj operaciji umetanja.
Nakon dodavanja zapisa, ugrađeni niz možete potvrditi upitom za pronalaženje koji ispisuje rezultat u JSON formatu:
db.Employee.find( { "Employeeid" : 4 } ).forEach(printjson)
Izlaz prikazuje niz Vještina ugniježđen unutar dokumenta zaposlenika. Later, možete dodati nove vrijednosti u niz pomoću operatora $push ili pročitati pojedinačni element prema njegovoj indeksnoj poziciji. Pohranjivanje povezanih vrijednosti na ovaj način održava svaki dokument samostalnim, smanjuje potrebu za spajanjem između kolekcija i olakšava čitanje i održavanje podataka.
insert() vs insertOne() vs insertMany()
MongoDB pruža tri povezane metode za dodavanje podataka. Tablica u nastavku ih uspoređuje kako biste mogli odabrati onu pravu:
| način | Svrha | Primjer |
|---|---|---|
| umetnuti() | Zastarjela metoda koja dodaje jedan dokument ili niz dokumenata. Još uvijek radi, ali je zastarjela u novijim upravljačkim programima. | db.Zaposlenik.insert(mojZaposlenik) |
| ubaciJedan() | Dodaje točno jedan dokument i vraća njegov umetnuti _id. Poželjno za pojedinačne zapise. | db.Employee.insertOne({ … }) |
| umetniMnogo() | Dodaje niz dokumenata u jednom pozivu i vraća sve umetnute _id-ove. Poželjno za skupne unose. | db.Employee.insertMany([ { … }, { … } ]) |
Za nove projekte koristite insertOne() i insertMany() jer daju jasniju namjeru i bolje izvještavanje o pogreškama. Metoda insert() ostaje dostupna uglavnom radi unatrag kompatibilnosti sa starijim tutorijalima i skriptama.
Ispis u JSON formatu
JSON je format tzv JavaNotacija objekta skripte, i samo je način pohranjivanja informacija na organiziran način koji se lako čita. U našim daljnjim primjerima koristit ćemo funkciju ispisa JSON kako bismo vidjeli izlaz u boljem formatu.
Pogledajmo primjer ispisa u JSON formatu
db.Employee.find().forEach(printjson)
Code Objašnjenje:
- Prva promjena je dodavanje funkcije forEach() funkciji find(). To osigurava eksplicitan pregled svakog dokumenta u kolekciji. Na taj način imate veću kontrolu nad onim što možete učiniti sa svakim dokumentom u kolekciji.
- Druga promjena je stavljanje naredbe printjson u naredbu forEach. To će uzrokovati da se svaki dokument u zbirci prikaže u JSON formatu.
Ako je naredba uspješno izvršena, prikazat će se sljedeći izlaz
Izlaz:
Izlaz jasno pokazuje da su svi dokumenti ispisani u JSON stilu.


