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).

  • ๐Ÿ” Funkcija find(): Metoda db.collection.find() dohvaฤ‡a dokumente iz MongoDB kolekcija, vraฤ‡ajuฤ‡i svaki dokument kada nije zadan filter.
  • ๐ŸŽฏ Kriteriji filtriranja: Prosljeฤ‘ivanje objekta upita, kao ลกto je {EmployeeName: โ€œSmithโ€}, vraฤ‡a samo dokumente koji odgovaraju uvjetu.
  • โž• Pitanje Operatorovi: Operatori odabira poput $gt, $lt i $in proฤiลกฤ‡avaju rezultate, na primjer pronalazeฤ‡i zaposlenike s ID-om veฤ‡im od 2.
  • ๐Ÿ–จ๏ธ Readable Izlaz: Ulanฤavanje forEach(printjson) ispisuje svaki vraฤ‡eni dokument u ฤistom JSON formatu.
  • ๐Ÿงพ Projekcija: Drugi argument funkcije find() odabire koja polja treba ukljuฤiti ili iskljuฤiti iz rezultata.

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.

MongoDB Osnovni upit Operama
MongoDB Osnovna operacija upita

Code Objaลกnjenje:

  1. Employee je naziv zbirke u MongoDB baza podataka
  2. 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:

MongoDB Osnovni upit Operama

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:

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

MongoDB Primjer upita

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:

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

MongoDB Primjer upita

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.

Pitanja i odgovori

find() vraฤ‡a kursor na sve dokumente koji odgovaraju upitu, tako da moลพe vratiti viลกe rezultata. findOne() vraฤ‡a samo prvi odgovarajuฤ‡i dokument kao jedan objekt ili null ako se nijedan ne podudara.

Spojite sort() i limit() s kursorom find(). Na primjer, find().sort({age:1}).limit(5) vraฤ‡a pet najmlaฤ‘ih zapisa. Koristite 1 za uzlazni i -1 za silazni redoslijed u sort().

Koristite countDocuments() s istim filterom, na primjer db.Employee.countDocuments({EmployeeName:โ€Smithโ€}). Vraฤ‡a broj odgovarajuฤ‡ih dokumenata bez njihovog dohvaฤ‡anja, ลกto je brลพe od ฤitanja i brojanja cijelog skupa rezultata.

Umjetna inteligencija moลพe pretvoriti zahtjev na obiฤnom jeziku u upit find() s ispravnim operatorima i projekcijom te objasniti svaki dio. Uvijek testirajte upit na uzorku podataka prije pokretanja u produkciji.

Da. Umjetna inteligencija moลพe proฤitati plan upita, uoฤiti nedostajuฤ‡e indekse ili neuฤinkovite operatore te predloลพiti indekse ili prepisane filtere. To pomaลพe programerima da brลพe poboljลกaju performanse funkcije find() na velikim kolekcijama.

Saลพmite ovu objavu uz: