MongoDB Dokument upita: db.collection.find() s primjerom
โก Pametni saลพetak
MongoDB Operacije upita dokumenata dohvaฤaju zapise iz kolekcije pomoฤu funkcije db.collection.find(). Metoda prema zadanim postavkama vraฤa sve dokumente, prihvaฤa kriterije filtriranja kao ลกto su podudaranja polja i operator $gt te formatira rezultate naredbom forEach(printjson).

Metoda dohvaฤanja ili dobivanja podataka od a MongoDB baza podataka provodi se koriลกtenjem MongoDB upite. Tijekom izvoฤenja operacije upita, takoฤer se mogu koristiti kriteriji ili uvjeti koji se mogu koristiti za dohvaฤanje odreฤenih podataka iz baze podataka.
MongoDB pruลพa funkciju tzv db.collection.find() koji se koristi za pronalaลพenje dokumenata iz a MongoDB baza podataka.
Tijekom ovog MongoDB upute za upite, vidjet ฤete kako se ova funkcija koristi na razliฤite naฤine za postizanje svrhe pronalaลพenja dokumenata.
ล to je db.collection.find() u MongoDB?
Metoda db.collection.find() je primarni naฤin ฤitanja dokumenata iz MongoDB kolekcija. Kada ga pozovete bez ikakvog argumenta, vraฤa svaki dokument u kolekciji. Kada proslijedite objekt upita, vraฤa samo dokumente koji odgovaraju zadanim kriterijima, tako da moลพete dohvatiti toฤno one podatke koji su vam potrebni.
Metoda vraฤa kursor, koji je pokazivaฤ na skup rezultata, a ne na same dokumente. Obiฤno se kroz kursor prolazi petljom za prikaz rezultata, ฤesto s forEach(printjson) za prikaz svakog dokumenta u ฤitljivom JSON-u. Ako vam je potreban samo jedan zapis, MongoDB takoฤer pruลพa findOne(), koji vraฤa prvi odgovarajuฤi dokument umjesto kursora. Zajedno, find() i findOne() pokrivaju veฤinu operacija ฤitanja u MongoDB baze podataka, od dohvaฤanja cijelih kolekcija do filtriranja prema odreฤenim vrijednostima polja.
MongoDB Osnovni upit Operama
Osnovni MongoDB operatori upita pokrivaju jednostavne operacije kao ลกto je dobivanje svih dokumenata u a MongoDB kolekcija. Pogledajmo primjer db.collection.find kako to moลพemo postiฤi.
Sav naลก kod bit ฤe pokrenut u MongoDB JavaScript naredbena ljuska. Uzmite u obzir da imamo zbirku pod nazivom 'Zaposlenik' u naลกoj MongoDB bazu podataka i izvrลกavamo naredbu u nastavku.

Code Objaลกnjenje:
- Employee je naziv zbirke u MongoDB baza podataka
- The MongoDB traลพenje upita je ugraฤena funkcija koja se koristi za dohvaฤanje dokumenata u zbirci.
Ako se naredba uspjeลกno izvrลกi, prikazat ฤe se sljedeฤi izlaz za MongoDB pronaฤi primjer
Izlaz:
Izlaz prikazuje sve dokumente koji su prisutni u zbirci.
Takoฤer moลพemo dodati kriterije naลกim upitima kako bismo mogli dohvatiti dokumente na temelju odreฤenih uvjeta.
MongoDB Primjer upita โ 1
Pogledajmo nekoliko MongoDB upitajte primjere kako to moลพemo postiฤi.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Objaลกnjenje:
- Ovdje ลพelimo pronaฤi zaposlenika ฤije je ime "Smith" u zbirci, stoga unosimo kriterije filtra kao EmployeeName: "Smith"
Ako je naredba uspjeลกno izvrลกena, prikazat ฤe se sljedeฤi izlaz
Izlaz:
Izlaz pokazuje da se vraฤa samo dokument koji sadrลพi "Smith" kao ime zaposlenika.
MongoDB Primjer upita โ 2
Sada u ovome MongoDB vodiฤ za upite, pogledajmo joลก jedan primjer koda koji koristi kriterije pretraลพivanja veฤe od. Kada je ovaj kriterij ukljuฤen, on zapravo pretraลพuje one dokumente u kojima je vrijednost polja veฤa od navedene vrijednosti.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Objaลกnjenje:
- Ovdje ลพelimo pronaฤi sve zaposlenike ฤiji je ID veฤi od 2. $gt se naziva operator odabira upita, a ono ลกto je samo znaฤi je koriลกtenje izraza veฤe od.
Ako MongoDB naredba select fields uspjeลกno izvrลกena, prikazat ฤe se sljedeฤi izlaz
Izlaz:
Vraฤaju se svi dokumenti u kojima je ID zaposlenika veฤi od 2.
MongoDB Pitanje Operaulagatelji
MongoDB filtrira dokumente pomoฤu operatora odabira upita unutar kriterija find(). Ovi operatori omoguฤuju vam usklaฤivanje raspona, popisa i negacija umjesto samo toฤnih vrijednosti. Tablica u nastavku navodi najฤeลกฤe operatore:
| Operahumka | Znaฤenje | Primjer |
|---|---|---|
| gt $ | Veฤi od | {ID zaposlenika: {$gt: 2}} |
| $lt | Less od | {ID zaposlenika: {$lt: 5}} |
| $gte | Veฤi od ili jednak | {dob: {$gte: 18}} |
| $lte | Less nego ili jednako | {dob: {$lte: 60}} |
| $ne | Nije jednako | {status: {$ne: โaktivanโ}} |
| $u | Odgovara bilo kojoj vrijednosti na popisu | {odjel: {$in: [โHRโ,โITโ]}} |
Takoฤer moลพete kombinirati uvjete s $and i $or za izradu preciznijih upita. Odabir pravog operatora odrลพava upite uฤinkovitima i vraฤa samo dokumente koji su potrebni vaลกoj aplikaciji.
Kako koristiti projekciju s find()
Prema zadanim postavkama, find() vraฤa cijeli dokument, ukljuฤujuฤi svako polje. ฤesto vam je potrebno samo nekoliko polja, kao ลกto su ime ili ID. MongoDB omoguฤuje vam kontrolu nad ovim pomoฤu projekcije, ลกto je drugi argument proslijeฤen funkciji find() koja navodi polja koja treba ukljuฤiti ili iskljuฤiti.
Da biste ukljuฤili samo odreฤena polja, postavite ih na 1 u objektu projekcije. Sljedeฤi upit vraฤa samo polje EmployeeName za svaki dokument:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB uvijek vraฤa polje _id osim ako ga izriฤito ne iskljuฤite. Da biste ga sakrili, postavite _id na 0:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
Takoฤer moลพete iskljuฤiti polja umjesto da ih ukljuฤite tako da ih postavite na 0. Na primjer, upit u nastavku vraฤa sva polja osim Employeeid-a:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Imajte na umu da ne moลพete mijeลกati ukljuฤivanje i iskljuฤivanje u istoj projekciji, osim za polje _id. Koriลกtenje projekcije smanjuje koliฤinu podataka prenesenih s posluลพitelja, ลกto ubrzava upite i olakลกava ฤitanje odgovora, posebno na velikim dokumentima.



