MongoDB Dokumentum lekérdezése: db.collection.find() példával
⚡ Okos összefoglaló
MongoDB A Lekérdezési Dokumentum műveletek a db.collection.find() függvénnyel kérnek le rekordokat egy gyűjteményből. A metódus alapértelmezés szerint az összes dokumentumot visszaadja, elfogadja a szűrőfeltételeket, például a mezőegyezéseket és a $gt operátort, és az eredményeket a forEach(printjson) paranccsal formázza.

Az adatok lekérésének vagy lekérésének módja a MongoDB használatával történik az adatbázis MongoDB lekérdezések. A lekérdezési művelet végrehajtása során olyan kritériumokat vagy feltételeket is használhatunk, amelyek segítségével specifikus adatokat kérhetünk le az adatbázisból.
MongoDB nevű függvényt biztosít db.collection.find() amely a dokumentumok lekérésére szolgál a MongoDB adatbázisban.
Ennek során MongoDB lekérdezés oktatóanyagában, látni fogja, hogyan használják ezt a funkciót különféle módokon a dokumentum-visszakeresés céljának eléréséhez.
Mi a db.collection.find() függvény a következőben: MongoDB?
A db.collection.find() metódus az elsődleges módja a dokumentumok beolvasásának egy MongoDB gyűjtemény. Amikor argumentum nélkül hívod meg, akkor a gyűjtemény összes dokumentumát visszaadja. Amikor átadsz egy lekérdezési objektumot, csak azokat a dokumentumokat adja vissza, amelyek megfelelnek a megadott feltételeknek, így pontosan a szükséges adatokat kérheted le.
A metódus egy kurzort ad vissza, ami egy mutató az eredményhalmazra, nem pedig magukra a dokumentumokra. Az eredmények megjelenítéséhez általában ciklust kell végrehajtani a kurzoron, gyakran a forEach(printjson) függvénnyel, hogy minden dokumentum olvasható JSON formátumban jelenjen meg. Ha csak egyetlen rekordra van szükség, MongoDB a findOne() függvényt is biztosítja, amely kurzor helyett az első egyező dokumentumot adja vissza. A find() és a findOne() együttesen lefedik a legtöbb olvasási műveletet egy MongoDB adatbázis, a teljes gyűjtemények lekérésétől kezdve a megadott mezőértékek szerinti szűrésig.
MongoDB Alap lekérdezés OperaTIONS
Az alap MongoDB A lekérdezési operátorok lefedik az egyszerű műveleteket, például az összes dokumentum lekérését a MongoDB Gyűjtemény. Nézzünk egy db.collection.find példát arra, hogyan tudjuk ezt megvalósítani.
Minden kódunk a MongoDB JavaForgatókönyv parancshéj. Gondoljunk arra, hogy van egy „Alkalmazott” nevű gyűjteményünk MongoDB adatbázist, és végrehajtjuk az alábbi parancsot.

Code Magyarázat:
- Az alkalmazott a gyűjtemény neve a MongoDB adatbázis
- Az MongoDB A find query egy beépített funkció, amely a gyűjteményben lévő dokumentumok lekérésére szolgál.
Ha a parancsot sikeresen végrehajtották, a következő kimenet jelenik meg a MongoDB példát találni
output:
A kimenet megjeleníti a gyűjteményben található összes dokumentumot.
Lekérdezéseinket kritériumokkal is kiegészíthetjük, hogy bizonyos feltételek alapján le tudjuk kérni a dokumentumokat.
MongoDB Lekérdezési példa – 1
Nézzünk meg egy párat MongoDB kérdezzen példákat arra, hogyan tudjuk ezt megvalósítani.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Magyarázat:
- Itt egy olyan alkalmazottat szeretnénk keresni, akinek a neve „Smith” a gyűjteményben, ezért a szűrési feltételeket EmployeeName néven írjuk be: „Smith”
Ha a parancs sikeresen végrehajtásra került, a következő kimenet jelenik meg
output:
A kimenet azt mutatja, hogy csak az a dokumentum kerül visszaadásra, amely az alkalmazott neveként „Smith”-et tartalmazza.
MongoDB Lekérdezési példa – 2
Most ebben MongoDB lekérdezések oktatóanyagát, vessünk egy pillantást egy másik kódpéldára, amely a keresésnél nagyobb feltételt használja. Ha ez a feltétel szerepel, akkor valójában azokat a dokumentumokat keresi, amelyekben a mező értéke nagyobb, mint a megadott érték.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Magyarázat:
- Itt meg akarjuk találni az összes alkalmazottat, akinek az azonosítója nagyobb, mint 2. A $gt-t lekérdezéskiválasztó operátornak nevezzük, és ami csak azt jelenti, hogy a nagyobb, mint kifejezést használjuk.
Ha a MongoDB A select fields parancs sikeresen végrehajtva a következő kimenet jelenik meg
output:
Minden olyan dokumentum visszaküldésre kerül, amelyben az alkalmazotti azonosító nagyobb, mint 2.
MongoDB Kérdés Operatorzok
MongoDB A find() feltételeken belüli lekérdezéskiválasztó operátorok segítségével szűri a dokumentumokat. Ezek az operátorok lehetővé teszik tartományok, listák és tagadások egyeztetését a pontos értékek helyett. Az alábbi táblázat a leggyakoribb operátorokat sorolja fel:
| Operator | Jelentés | Példa |
|---|---|---|
| $gt | Nagyobb, mint | {Alkalmazottazonosító: {$gt: 2}} |
| $lt | Less mint | {Alkalmazottazonosító: {$lt: 5}} |
| $gte | Nagyobb vagy egyenlő | {életkor: {$gte: 18}} |
| $lte | Less mint vagy egyenlő | {életkor: {$lte: 60}} |
| $ne | Nem egyenlő | {állapot: {$ne: „aktív”}} |
| $in | Egy lista bármely értékének megfelel | {osztály: {$in: [„HR”, „IT”]}} |
A feltételeket a $and és a $or operátorokkal is kombinálhatod pontosabb lekérdezések létrehozásához. A megfelelő operátor kiválasztása hatékony lekérdezéseket biztosít, és csak azokat a dokumentumokat adja vissza, amelyekre az alkalmazásodnak szüksége van.
Hogyan használjuk a vetítést a find() függvénnyel?
Alapértelmezés szerint a find() a teljes dokumentumot visszaadja, beleértve az összes mezőt is. Gyakran csak néhány mezőre van szükség, például egy névre vagy egy azonosítóra. MongoDB A `projection` függvény segítségével ezt egy vetítéssel szabályozhatod, ami egy második argumentum, amit a find() függvénynek adunk át, és listázza a belefoglalandó vagy kizárandó mezőket.
Ha csak bizonyos mezőket szeretne szerepeltetni, állítsa azokat 1-re a vetítési objektumban. A következő lekérdezés minden dokumentumhoz csak az EmployeeName mezőt adja vissza:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB mindig visszaadja az _id mezőt, hacsak nem zárod ki explicit módon. Elrejtéséhez állítsd az _id értékét 0-ra:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
A mezőket 0 értékre állítva belefoglalás helyett kizárhatja is. Például az alábbi lekérdezés az Alkalmazotti azonosító kivételével minden mezőt visszaad:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Ne feledd, hogy a belefoglalás és a kizárás nem keverhető ugyanabban a vetítésben, kivéve az _id mezőt. A vetítés használata csökkenti a szerverről átvitt adatmennyiséget, ami gyorsabbá teszi a lekérdezéseket és könnyebben olvasható válaszokat, különösen nagy dokumentumok esetén.



