MongoDB Документ за заявка: db.collection.find() с пример
⚡ Умно обобщение
MongoDB Операциите за заявки върху документи извличат записи от колекция, използвайки функцията db.collection.find(). Методът връща всички документи по подразбиране, приема критерии за филтриране, като например съвпадения на полета и оператора $gt, и форматира резултатите с командата forEach(printjson).

Методът за извличане или получаване на данни от a MongoDB база данни се извършва чрез използване MongoDB заявки. Докато извършвате операция по заявка, можете също да използвате критерии или условия, които могат да се използват за извличане на конкретни данни от базата данни.
MongoDB предоставя функция, наречена db.collection.find() който се използва за извличане на документи от a MongoDB база данни.
По време на това MongoDB ръководство за заявки, ще видите как тази функция се използва по различни начини за постигане на целта за извличане на документи.
Какво представлява db.collection.find() в MongoDB?
Методът db.collection.find() е основният начин за четене на документи от MongoDB колекция. Когато го извикате без аргумент, той връща всеки документ в колекцията. Когато подадете обект на заявка, той връща само документите, които отговарят на зададените критерии, така че можете да извлечете точно данните, от които се нуждаете.
Методът връща курсор, който е указател към резултатния набор, а не към самите документи. Обикновено се преминава през курсора, за да се покажат резултатите, често с forEach(printjson), за да се покаже всеки документ в четлив JSON. Ако ви е необходим само един запис, MongoDB също така предоставя findOne(), който връща първия съответстващ документ вместо курсор. Заедно find() и findOne() покриват повечето операции за четене в MongoDB база данни, от извличане на цели колекции до филтриране по стойности на конкретни полета.
MongoDB Основна заявка Operaции
Основното MongoDB операторите на заявки обхващат прости операции като получаване на всички документи в a MongoDB колекция. Нека да разгледаме пример за db.collection.find как можем да постигнем това.
Целият ни код ще се изпълнява в MongoDB JavaСценарий командна обвивка. Помислете, че имаме колекция с име „Служител“ в нашата MongoDB база данни и изпълняваме командата по-долу.

Code Обяснение:
- Employee е името на колекцията в MongoDB база данни
- - MongoDB find query е вградена функция, която се използва за извличане на документите в колекцията.
Ако командата е изпълнена успешно, ще се покаже следният изход за MongoDB намери пример
Изход:
Резултатът показва всички документи, които присъстват в колекцията.
Можем също да добавяме критерии към нашите заявки, така че да можем да извличаме документи въз основа на определени условия.
MongoDB Пример за заявка – 1
Нека да разгледаме няколко MongoDB примери за запитване как можем да постигнем това.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Обяснение:
- Тук искаме да намерим служител, чието име е „Смит“ в колекцията, следователно въвеждаме критериите за филтър като EmployeeName: „Смит“
Ако командата е изпълнена успешно, ще се покаже следният изход
Изход:
Резултатът показва, че се връща само документът, който съдържа „Смит“ като име на служител.
MongoDB Пример за заявка – 2
Сега в това MongoDB урок за заявки, нека да разгледаме друг пример за код, който използва критериите за търсене по-големи от. Когато този критерий е включен, той действително търси тези документи, където стойността на полето е по-голяма от зададената стойност.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Обяснение:
- Тук искаме да намерим за всички служители, чийто идентификатор е по-голям от 2. $gt се нарича оператор за избор на заявка и това, което е просто означава, е да се използва изразът по-голямо от.
Ако MongoDB командата за избор на полета е изпълнена успешно, ще се покаже следният изход
Изход:
Всички документи, в които идентификаторът на служител е по-голям от 2, се връщат.
MongoDB Запитване Operaтори
MongoDB филтрира документи, използвайки оператори за избор на заявка в критериите find(). Тези оператори ви позволяват да съпоставяте диапазони, списъци и отрицания, вместо само точни стойности. Таблицата по-долу изброява най-често срещаните оператори:
| OperaTor | Значение | Пример |
|---|---|---|
| $gt | По-велик от | {Идентификатор на служител: {$gt: 2}} |
| $lt | Less от | {Идентификатор на служител: {$lt: 5}} |
| $gte | По-голямо или равно на | {възраст: {$gte: 18}} |
| $lte | Less отколкото или равно на | {възраст: {$lte: 60}} |
| $ne | Не е равно на | {статус: {$ne: „активен“}} |
| $в | Съвпада с всяка стойност в списък | {отдел: {$in: [„HR“, „IT“]}} |
Можете също да комбинирате условия с $and и $or, за да изградите по-точни заявки. Изборът на правилния оператор поддържа заявките ефективни и връща само документите, от които се нуждае вашето приложение.
Как да използваме проекцията с find()
По подразбиране find() връща целия документ, включително всяко поле. Често са ви необходими само няколко полета, като например име или идентификатор. MongoDB позволява ви да контролирате това с проекция, която е втори аргумент, подаден на find(), който изброява полетата за включване или изключване.
За да включите само определени полета, задайте им стойност 1 в обекта за проекция. Следната заявка връща само полето EmployeeName за всеки документ:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB винаги връща полето _id, освен ако не го изключите изрично. За да го скриете, задайте _id на 0:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
Можете също да изключите полетата, вместо да ги включите, като ги зададете на 0. Например, заявката по-долу връща всяко поле с изключение на Employeeid:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Имайте предвид, че не можете да смесвате включване и изключване в една и съща проекция, с изключение на полето _id. Използването на проекция намалява количеството данни, прехвърляни от сървъра, което прави заявките по-бързи, а отговорите по-лесни за четене, особено при големи документи.



