MongoDB Document de interogare: db.collection.find() cu Exemplu
โก Rezumat inteligent
MongoDB Operaศiunile de interogare a documentelor preiau รฎnregistrฤri dintr-o colecศie folosind funcศia db.collection.find(). Metoda returneazฤ toate documentele รฎn mod implicit, acceptฤ criterii de filtrare precum potrivirile de cรขmp ศi operatorul $gt ศi formateazฤ rezultatele cu comanda forEach(printjson).

Metoda de preluare sau obศinere a datelor de la a MongoDB baza de date se realizeazฤ prin utilizarea MongoDB รฎntrebฤri. รn timpul efectuฤrii unei operaศii de interogare, se pot folosi ศi criterii sau condiศii care pot fi folosite pentru a prelua date specifice din baza de date.
MongoDB oferฤ o funcศie numitฤ db.collection.find() care este folosit pentru preluarea documentelor din a MongoDB Bazฤ de date.
Pe parcursul acestei MongoDB tutorial de interogare, veศi vedea cum aceastฤ funcศie este utilizatฤ รฎn diferite moduri pentru a atinge scopul regฤsirii documentelor.
Ce este db.collection.find() รฎn MongoDB?
Metoda db.collection.find() este principala modalitate de a citi documente dintr-un MongoDB colecศie. Cรขnd o apelaศi fฤrฤ niciun argument, aceasta returneazฤ fiecare document din colecศie. Cรขnd transmiteศi un obiect de interogare, aceasta returneazฤ doar documentele care corespund criteriilor date, astfel รฎncรขt sฤ puteศi recupera exact datele de care aveศi nevoie.
Metoda returneazฤ un cursor, care este un pointer cฤtre setul de rezultate, nu cฤtre documentele รฎn sine. De obicei, parcurgeศi cursorul pentru a afiศa rezultatele, adesea folosind forEach(printjson) pentru a afiศa fiecare document รฎn JSON lizibil. Dacฤ aveศi nevoie doar de o singurฤ รฎnregistrare, MongoDB oferฤ ศi findOne(), care returneazฤ primul document corespondent รฎn loc de cursor. รmpreunฤ, find() ศi findOne() acoperฤ majoritatea operaศiunilor de citire dintr-un MongoDB baza de date, de la preluarea unor colecศii รฎntregi pรขnฤ la filtrarea dupฤ valori specifice ale cรขmpurilor.
MongoDB Interogare de bazฤ Operaศii
Baza MongoDB operatorii de interogare acoperฤ operaศiunile simple, cum ar fi obศinerea tuturor documentelor รฎntr-un MongoDB Colectie. Sฤ ne uitฤm la un exemplu db.collection.find despre cum putem realiza acest lucru.
Tot codul nostru va fi rulat รฎn MongoDB JavaScenariu shell de comandฤ. Luaศi รฎn considerare cฤ avem o colecศie numitฤ โAngajatโ รฎn cadrul nostru MongoDB baza de date ศi executฤm comanda de mai jos.

Code Explicaลฃie:
- Angajat este numele colecศiei din MongoDB Baza de date
- MongoDB interogarea gฤsi este o funcศie รฎncorporatฤ care este utilizatฤ pentru a prelua documentele din colecศie.
Dacฤ comanda este executatฤ cu succes, urmฤtoarea ieศire va fi afiศatฤ pentru MongoDB gฤsi un exemplu
ieศire:
Ieศirea aratฤ toate documentele care sunt prezente รฎn colecศie.
De asemenea, putem adฤuga criterii la interogฤrile noastre, astfel รฎncรขt sฤ putem prelua documente รฎn funcศie de anumite condiศii.
MongoDB Exemplu de interogare โ 1
Sฤ ne uitฤm la cรขteva MongoDB รฎntrebaศi exemple despre cum putem realiza acest lucru.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Explicaลฃie:
- Aici dorim sฤ gฤsim un angajat al cฤrui nume este โSmithโ รฎn colecศie, de aceea introducem criteriile de filtrare ca EmployeeName: โSmithโ
Dacฤ comanda este executatฤ cu succes, va fi afiศatฤ urmฤtoarea ieศire
ieศire:
Rezultatul aratฤ cฤ este returnat doar documentul care conศine โSmithโ ca Nume de angajat.
MongoDB Exemplu de interogare โ 2
Acum รฎn asta MongoDB tutorial de interogฤri, sฤ aruncฤm o privire la un alt exemplu de cod care utilizeazฤ criteriile de cฤutare mai mari decรขt. Cรขnd acest criteriu este inclus, se cautฤ de fapt acele documente รฎn care valoarea cรขmpului este mai mare decรขt valoarea specificatฤ.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Explicaลฃie:
- Aici dorim sฤ gฤsim pentru toศi angajaศii al cฤror id este mai mare decรขt 2. $gt este numit operator de selecศie a interogฤrii, iar ceea ce รฎnseamnฤ doar utilizarea expresiei mai mare decรขt.
รn cazul รฎn care MongoDB comanda select fields este executatฤ cu succes, va fi afiศatฤ urmฤtoarea ieศire
ieศire:
Toate documentele รฎn care ID-ul de angajat este mai mare de 2 sunt returnate.
MongoDB รntrebare Operatori
MongoDB filtreazฤ documentele folosind operatori de selecศie a interogฤrilor รฎn cadrul criteriilor find(). Aceศti operatori vฤ permit sฤ potriviศi intervale, liste ศi negaศii รฎn loc sฤ potriviศi doar valori exacte. Tabelul de mai jos prezintฤ cei mai comuni operatori:
| OperaTdR | Sens | Exemplu |
|---|---|---|
| $gt | Mai mare ca | {ID angajat: {$gt: 2}} |
| $lt | Less decรขt | {ID angajat: {$lt: 5}} |
| $gte | Mai mare sau egal cu | {vรขrstฤ: {$gte: 18}} |
| $lte | Less decรขt sau egal cu | {vรขrstฤ: {$lte: 60}} |
| $ne | Nu este egal cu | {stare: {$ne: โactivโ}} |
| $in | Se potriveศte cu orice valoare dintr-o listฤ | {dept: {$in: [โHRโ, โITโ]}} |
De asemenea, puteศi combina condiศii cu $and ศi $or pentru a construi interogฤri mai precise. Alegerea operatorului potrivit menศine eficienศa interogฤrilor ศi returneazฤ doar documentele de care are nevoie aplicaศia dvs.
Cum se utilizeazฤ proiecศia cu find()
รn mod implicit, find() returneazฤ รฎntregul document, inclusiv fiecare cรขmp. Adesea, aveศi nevoie doar de cรขteva cรขmpuri, cum ar fi un nume sau un ID. MongoDB vฤ permite sฤ controlaศi acest lucru cu o proiecศie, care este un al doilea argument transmis funcศiei find() ce listeazฤ cรขmpurile de inclus sau exclus.
Pentru a include doar anumite cรขmpuri, setaศi-le la 1 รฎn obiectul de proiecศie. Urmฤtoarea interogare returneazฤ doar cรขmpul EmployeeName pentru fiecare document:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB returneazฤ รฎntotdeauna cรขmpul _id, cu excepศia cazului รฎn care รฎl excludeศi explicit. Pentru a-l ascunde, setaศi _id la 0:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
De asemenea, puteศi exclude cรขmpuri รฎn loc sฤ le includeศi, setรขnd-le la 0. De exemplu, interogarea de mai jos returneazฤ fiecare cรขmp, cu excepศia ID-ului angajatului:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Reศineศi cฤ nu puteศi combina includerea ศi excluderea รฎn aceeaศi proiecศie, cu excepศia cรขmpului _id. Utilizarea proiecศiei reduce cantitatea de date transferate de la server, ceea ce face ca interogฤrile sฤ fie mai rapide ศi rฤspunsurile mai uศor de citit, รฎn special รฎn documentele mari.



