MongoDB Dokument dotazu: db.collection.find() s příkladem
⚡ Chytré shrnutí
MongoDB Operace dotazování dokumentů načítají záznamy z kolekce pomocí funkce db.collection.find(). Metoda standardně vrací všechny dokumenty, akceptuje kritéria filtrování, jako jsou shody polí a operátor $gt, a formátuje výsledky pomocí příkazu forEach(printjson).

Metoda načítání nebo získávání dat z a MongoDB databáze se provádí pomocí MongoDB dotazy. Při provádění operace dotazu lze také použít kritéria nebo podmínky, které lze použít k načtení konkrétních dat z databáze.
MongoDB poskytuje funkci tzv db.collection.find() který se používá pro vyhledávání dokumentů z a MongoDB databáze.
V průběhu tohoto MongoDB dotazovací tutoriál, uvidíte, jak se tato funkce různými způsoby používá k dosažení účelu načítání dokumentů.
Co je db.collection.find() v MongoDB?
Metoda db.collection.find() je primárním způsobem, jak číst dokumenty z MongoDB kolekce. Když ji zavoláte bez argumentu, vrátí všechny dokumenty v kolekci. Když předáte objekt dotazu, vrátí pouze dokumenty, které splňují zadaná kritéria, takže můžete načíst přesně ta data, která potřebujete.
Metoda vrací kurzor, což je ukazatel na výslednou sadu, nikoli na samotné dokumenty. Pro zobrazení výsledků obvykle procházíte kurzorem, často pomocí forEach(printjson) pro zobrazení každého dokumentu v čitelném JSON. Pokud potřebujete pouze jeden záznam, MongoDB také poskytuje funkci findOne(), která vrací první odpovídající dokument místo kurzoru. Funkce find() a findOne() společně pokrývají většinu operací čtení v MongoDB databázi, od načítání celých kolekcí až po filtrování podle hodnot konkrétních polí.
MongoDB Základní dotaz Operace
Základní MongoDB Operátory dotazů pokrývají jednoduché operace, jako je získání všech dokumentů v a MongoDB sbírka. Podívejme se na příklad db.collection.find, jak toho můžeme dosáhnout.
Veškerý náš kód bude spuštěn v MongoDB JavaScénář příkazový shell. Zvažte, že máme sbírku s názvem 'Zaměstnanec' MongoDB databáze a provedeme níže uvedený příkaz.

Code Vysvětlení:
- Zaměstnanec je název kolekce v MongoDB databáze
- Jedno MongoDB find query je vestavěná funkce, která se používá k načtení dokumentů v kolekci.
Pokud je příkaz úspěšně proveden, zobrazí se následující výstup MongoDB najít příklad
Výstup:
Výstup zobrazuje všechny dokumenty, které se nacházejí ve sbírce.
K našim dotazům můžeme také přidat kritéria, abychom mohli načítat dokumenty na základě určitých podmínek.
MongoDB Příklad dotazu – 1
Podívejme se na pár MongoDB dotaz na příklady, jak toho můžeme dosáhnout.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Vysvětlení:
- Zde chceme najít zaměstnance, jehož jméno je „Smith“ v kolekci , proto zadáme kritéria filtru jako EmployeeName: „Smith“
Pokud je příkaz úspěšně proveden, zobrazí se následující výstup
Výstup:
Výstup ukazuje, že je vrácen pouze dokument, který obsahuje „Smith“ jako jméno zaměstnance.
MongoDB Příklad dotazu – 2
Nyní v tomto MongoDB queries tutorial, podívejme se na další příklad kódu, který využívá větší než vyhledávací kritéria. Když je toto kritérium zahrnuto, ve skutečnosti prohledává dokumenty, kde je hodnota pole větší než zadaná hodnota.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Vysvětlení:
- Zde chceme najít pro všechny zaměstnance, jejichž id je větší než 2. $gt se nazývá operátor výběru dotazu a to, co znamená, je použít výraz větší než.
V případě, že MongoDB Pokud byl příkaz select fields úspěšně proveden, zobrazí se následující výstup
Výstup:
Vrátí se všechny dokumenty, jejichž ID zaměstnance je větší než 2.
MongoDB Dotaz Operatorů
MongoDB Filtruje dokumenty pomocí operátorů výběru dotazu uvnitř kritérií find(). Tyto operátory umožňují porovnávat rozsahy, seznamy a negace namísto pouze přesných hodnot. V následující tabulce jsou uvedeny nejběžnější operátory:
| OperaTor | Význam | Příklad |
|---|---|---|
| $gt | Větší než | {ID zaměstnance: {$gt: 2}} |
| $lt | Less než | {ID zaměstnance: {$lt: 5}} |
| $gte | Větší nebo roven | {věk: {$gte: 18}} |
| $lte | Less než nebo rovno | {věk: {$lte: 60}} |
| $ne | Nerovná se | {stav: {$ne: „aktivní“}} |
| $v | Odpovídá jakékoli hodnotě v seznamu | {oddělení: {$in: [„HR“,„IT“]}} |
Podmínky můžete také kombinovat s operátory $and a $or pro vytvoření přesnějších dotazů. Výběr správného operátoru udržuje dotazy efektivní a vrací pouze dokumenty, které vaše aplikace potřebuje.
Jak používat projekci s find()
Ve výchozím nastavení vrací find() celý dokument včetně všech polí. Často potřebujete jen několik polí, například jméno nebo ID. MongoDB umožňuje ovládat toto pomocí projekce, což je druhý argument předávaný funkci find(), který vypíše pole, která se mají zahrnout nebo vyloučit.
Chcete-li zahrnout pouze konkrétní pole, nastavte je v objektu projection na hodnotu 1. Následující dotaz vrátí pro každý dokument pouze pole EmployeeName:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB vždy vrací pole _id, pokud jej explicitně nevyloučíte. Chcete-li jej skrýt, nastavte _id na 0:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
Pole můžete také vyloučit místo jejich zahrnutí nastavením na hodnotu 0. Například níže uvedený dotaz vrátí všechna pole kromě pole Employeeid:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Mějte na paměti, že v jedné projekci nelze kombinovat zahrnutí a vyloučení, s výjimkou pole _id. Použití projekce snižuje množství dat přenášených ze serveru, což zrychluje dotazy a usnadňuje čtení odpovědí, zejména u velkých dokumentů.



