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.

  • 🔍 find() függvény: A db.collection.find() metódus dokumentumokat kér le egy MongoDB gyűjtemény, minden dokumentumot visszaad, ha nincs megadva szűrő.
  • 🎯 Szűrési feltételek: Egy lekérdezési objektum, például a {EmployeeName: „Smith”} átadása csak azokat a dokumentumokat adja vissza, amelyek megfelelnek a feltételnek.
  • Kérdés Operators: Az olyan szelekciós operátorok, mint a $gt, $lt és $in, finomítják az eredményeket, például olyan alkalmazottakat keresnek, akiknek az azonosítója nagyobb, mint 2.
  • 🖨️ Readable output: A forEach(printjson) láncolása minden visszaadott dokumentumot tiszta JSON formátumban nyomtat ki.
  • 🧾 Vetítés: A find() függvény második argumentuma kiválasztja, hogy mely mezőket vegye fel vagy zárja ki az eredményekből.

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.

MongoDB Alap lekérdezés OperaTIONS
MongoDB Alapvető lekérdezési művelet

Code Magyarázat:

  1. Az alkalmazott a gyűjtemény neve a MongoDB adatbázis
  2. 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:

MongoDB Alap lekérdezés OperaTIONS

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:

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

MongoDB Lekérdezési példa

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:

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

MongoDB Lekérdezési példa

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.

GYIK

A find() függvény kurzorral mutatja a lekérdezésnek megfelelő összes dokumentumot, így sok találatot is visszaadhat. A findOne() függvény csak az első egyező dokumentumot adja vissza egyetlen objektumként, vagy null értéket, ha egyik sem egyezik.

Láncold össze a sort() és limit() metódusokat a find() kurzorral. Például a find().sort({age:1}).limit(5) az öt legfiatalabb rekordot adja vissza. A sort() függvényben a növekvő sorrendhez 1-et, a csökkenő sorrendhez pedig -1-et használj.

Használd a countDocuments() függvényt ugyanazzal a szűrővel, például db.Employee.countDocuments({EmployeeName:”Smith”}). Visszaadja az egyező dokumentumok számát anélkül, hogy lekérnéd őket, ami gyorsabb, mint a teljes eredményhalmaz beolvasása és megszámlálása.

A mesterséges intelligencia képes egy egyszerű nyelvű kérést find() lekérdezéssé alakítani a megfelelő operátorokkal és leképezéssel, és minden egyes részt elmagyarázni. Mindig teszteld a lekérdezést mintaadatokon, mielőtt éles környezetben futtatnád.

Igen. A mesterséges intelligencia képes beolvasni a lekérdezési tervet, hiányzó indexeket vagy nem hatékony operátorokat észlelni, és indexeket vagy átírt szűrőket javasolni. Ez segít a fejlesztőknek gyorsabban javítani a find() teljesítményét nagy gyűjteményeken.

Foglald össze ezt a bejegyzést a következőképpen: