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.

  • 📥 Skupni unos: Metoda insert() dodaje niz dokumenata u kolekciju u jednoj, učinkovitoj operaciji.
  • 🧾 Model dokumenta: Svaki dokument je skup parova polja i vrijednosti, i MongoDB automatski dodaje jedinstveni _id.
  • 🗂️ Ugrađeni nizovi: Niz također može postojati kao polje unutar jednog dokumenta, keeping povezane vrijednosti zajedno.
  • 🔁 Moderne metode: insertOne() i insertMany() su trenutne, jasnije zamjene za naslijeđenu metodu insert().
  • 🖨️ Readable Izlaz: Naredba forEach(printjson) ispisuje svaki dokument u čistom, lako čitljivom JSON formatu.

Š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

MongoDB Niz objekata pomoću insert()

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:

  1. 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.
  2. 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:

Ispis u JSON formatu

Izlaz jasno pokazuje da su svi dokumenti ispisani u JSON stilu.

Pitanja i odgovori

Da. Prosljeđivanje niza dokumenata metodi insert() dodaje ih sve u jednoj operaciji. Ovo skupno umetanje je brže od pozivanja insert() zasebno za svaki dokument, iako je insertMany() sada preferirana metoda.

Da. Ako dokument ne sadrži polje _id, MongoDB automatski generira jedinstveni ObjectId za njega tijekom umetanja, tako da se svaki pohranjeni zapis može identificirati i kasnije dohvatiti.

Po defaultu, MongoDB Izvodi uređivanje po redoslijedu. Dodaje dokumente zadanim redoslijedom i zaustavlja se na prvoj pogrešci, ostavljajući preostale dokumente neumetnutima. Postavljanjem vrijednosti ordered na false nastavlja se nakon pogrešaka.

Da. Alati umjetne inteligencije mogu pretvoriti opis vaših podataka jednostavnim jezikom u naredbe insertOne() ili insertMany(), uključujući ugrađene nizove. Uvijek pregledajte generirana polja i tipove podataka prije nego što ih pokrenete u bazi podataka.

Umjetna inteligencija može predložiti treba li ugraditi nizove unutar dokumenta ili referencirati odvojene kolekcije, na temelju vaših obrazaca upita. To pomaže početnicima da učinkovito modeliraju podatke, a istovremeno izbjegavaju nepotrebno dupliciranje ili preduboko ugniježđivanje.

Sažmite ovu objavu uz: