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

  • ๐Ÿ” Funcศ›ia find(): Metoda db.collection.find() preia documente dintr-un MongoDB colecศ›ie, returnรขnd fiecare document atunci cรขnd nu este aplicat niciun filtru.
  • ๐ŸŽฏ Criterii de filtrare: Transmiterea unui obiect de interogare, cum ar fi {EmployeeName: โ€žSmithโ€}, returneazฤƒ doar documentele care รฎndeplinesc condiศ›ia.
  • โž• รŽntrebare Operators: Operatorii de selecศ›ie precum $gt, $lt ศ™i $in rafineazฤƒ rezultatele, de exemplu, gฤƒsind angajaศ›i cu un id mai mare de 2.
  • ๐Ÿ–จ๏ธ Readable ieศ™ire: รŽnlฤƒnศ›uirea forEach(printjson) tipฤƒreศ™te fiecare document returnat รฎntr-un format JSON curat.
  • ๐Ÿงพ Proiecศ›ie: Un al doilea argument pentru find() selecteazฤƒ cรขmpurile care vor fi incluse sau excluse din rezultate.

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.

MongoDB Interogare de bazฤƒ Operaศ›ii
MongoDB Operaศ›ie de bazฤƒ de interogare

Code Explicaลฃie:

  1. Angajat este numele colecศ›iei din MongoDB Baza de date
  2. 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:

MongoDB Interogare de bazฤƒ Operaศ›ii

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:

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

MongoDB Exemplu de interogare

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:

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

MongoDB Exemplu de interogare

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.

รŽntrebฤƒri frecvente

find() returneazฤƒ un cursor cฤƒtre toate documentele care corespund interogฤƒrii, astfel รฎncรขt poate returna mai multe rezultate. findOne() returneazฤƒ doar primul document potrivit ca un singur obiect sau nul dacฤƒ niciunul nu se potriveศ™te.

Conecteazฤƒ sort() ศ™i limit() la cursorul find(). De exemplu, find().sort({age:1}).limit(5) returneazฤƒ cele mai tinere cinci รฎnregistrฤƒri. Foloseศ™te 1 pentru ordine crescฤƒtoare ศ™i -1 pentru ordine descrescฤƒtoare รฎn sort().

Foloseศ™te countDocuments() cu acelaศ™i filtru, de exemplu db.Employee.countDocuments({EmployeeName:โ€Smithโ€}). Aceasta returneazฤƒ numฤƒrul de documente corespondente fฤƒrฤƒ a le recupera, ceea ce este mai rapid decรขt citirea ศ™i numฤƒrarea setului complet de rezultate.

Inteligenศ›a artificialฤƒ poate converti o cerere รฎn limbaj simplu รฎntr-o interogare find() cu operatorii ศ™i proiecศ›ia corecte ศ™i poate explica fiecare parte. Testaศ›i รฎntotdeauna interogarea pe date eศ™antion รฎnainte de a o rula รฎn producศ›ie.

Da. Inteligenศ›a artificialฤƒ poate citi un plan de interogare, poate identifica indexuri lipsฤƒ sau operatori ineficienศ›i ศ™i poate sugera indexuri sau filtre rescrise. Acest lucru ajutฤƒ dezvoltatorii sฤƒ รฎmbunฤƒtฤƒศ›eascฤƒ mai rapid performanศ›a funcศ›iei find() pe colecศ›ii mari.

Rezumaศ›i aceastฤƒ postare cu: