MongoDB Документ запроса: db.collection.find() с примером

⚡ Умное резюме

MongoDB Операции запроса к документу извлекают записи из коллекции с помощью функции db.collection.find(). Метод по умолчанию возвращает все документы, принимает критерии фильтрации, такие как совпадения полей и оператор $gt, и форматирует результаты с помощью команды forEach(printjson).

  • 🔍 Функция find(): Метод db.collection.find() извлекает документы из базы данных. MongoDB Коллекция, возвращающая все документы, если фильтр не указан.
  • 🎯 Критерии фильтрации: Передача объекта запроса, например, {EmployeeName: “Smith”}, возвращает только те документы, которые соответствуют условию.
  • запрос OperaТорс: Операторы выбора, такие как $gt, $lt и $in, уточняют результаты, например, позволяют найти сотрудников с идентификатором больше 2.
  • 🇧🇷 Readable Выход: Использование цепочки вызовов forEach(printjson) выводит каждый возвращенный документ в чистом формате JSON.
  • 🧾 Проекция: Второй аргумент функции find() определяет, какие поля следует включить или исключить из результатов.

Метод выборки или получения данных из MongoDB база данных осуществляется с помощью MongoDB запросы. При выполнении операции запроса можно также использовать критерии или условия, которые можно использовать для извлечения определенных данных из базы данных.

MongoDB предоставляет функцию под названием db.коллекция.find() который используется для поиска документов из MongoDB .

В ходе этого MongoDB В учебнике по запросам вы увидите, как эта функция используется различными способами для достижения цели поиска документов.

Что такое db.collection.find() в... MongoDB?

Метод db.collection.find() является основным способом чтения документов из базы данных. MongoDB Коллекция. При вызове без аргументов она возвращает все документы из коллекции. При передаче объекта запроса она возвращает только те документы, которые соответствуют заданным критериям, поэтому вы можете получить именно те данные, которые вам нужны.

Этот метод возвращает курсор, который представляет собой указатель на результирующий набор, а не на сами документы. Обычно для отображения результатов используется цикл по курсору, часто с помощью forEach(printjson) для отображения каждого документа в читаемом формате JSON. Если вам нужна только одна запись, MongoDB Также предоставляется функция findOne(), которая возвращает первый соответствующий документ вместо курсора. Вместе функции find() и findOne() охватывают большинство операций чтения в MongoDB база данных, от получения целых коллекций до фильтрации по значениям конкретных полей.

MongoDB Основной запрос Operaных

Основа MongoDB Операторы запроса охватывают простые операции, такие как получение всех документов в MongoDB коллекция. Давайте посмотрим на пример db.collection.find, как это можно сделать.

Весь наш код будет запущен в MongoDB JavaСценарий командная оболочка. Предположим, у нас есть коллекция под названием «Сотрудник» в нашем каталоге. MongoDB базу данных и выполняем приведенную ниже команду.

MongoDB Основной запрос Operaных
MongoDB Базовая операция запроса

Code Объяснение:

  1. Сотрудник — это имя коллекции в MongoDB база данных
  2. MongoDB Запрос на поиск — это встроенная функция, которая используется для извлечения документов в коллекции.

Если команда выполнена успешно, для нее будет показан следующий вывод: MongoDB найти пример

Выход:

MongoDB Основной запрос Operaных

В выводе показаны все документы, присутствующие в коллекции.

Мы также можем добавлять критерии к нашим запросам, чтобы иметь возможность получать документы на основе определенных условий.

MongoDB Пример запроса – 1

Давайте посмотрим на пару MongoDB примеры запросов о том, как мы можем это сделать.

db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);

Code Объяснение:

  1. Здесь мы хотим найти в коллекции сотрудника с именем «Смит», поэтому мы вводим критерий фильтра как ИмяСотрудника: «Смит».

Если команда выполнена успешно, будет показан следующий вывод

Выход:

MongoDB Пример запроса

Вывод показывает, что возвращается только тот документ, который содержит «Смит» в качестве имени сотрудника.

MongoDB Пример запроса – 2

Теперь в этом MongoDB учебник по запросам, давайте посмотрим на другой пример кода, который использует критерии поиска «больше, чем». Когда этот критерий включен, он фактически ищет те документы, в которых значение поля больше указанного значения.

db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);

Code Объяснение:

  1. Здесь мы хотим найти всех сотрудников, чей идентификатор больше 2. $gt называется оператором выбора запроса, и это всего лишь означает использование выражения «больше».

Если же линия индикатора MongoDB Команда select fields выполнена успешно, будет показан следующий вывод

Выход:

MongoDB Пример запроса

Возвращаются все документы, в которых идентификатор сотрудника больше 2.

MongoDB запрос OperaTORs

MongoDB Фильтрация документов осуществляется с помощью операторов выбора запроса внутри критериев функции find(). Эти операторы позволяют сопоставлять диапазоны, списки и отрицания, а не только точные значения. В таблице ниже перечислены наиболее распространенные операторы:

оператор Смысл Пример
$гт Больше {Идентификатор сотрудника: {$gt: 2}}
$lt Less чем {Идентификатор сотрудника: {$lt: 5}}
$ gte Больше или равно {age: {$gte: 18}}
$ lte Less чем или равно {age: {$lte: 60}}
$ ne Не равно {status: {$ne: “active”}}
$ в Соответствует любому значению в списке. {отдел: {$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. Использование проекции уменьшает объем данных, передаваемых с сервера, что ускоряет запросы и упрощает чтение ответов, особенно в больших документах.

Часто задаваемые вопросы (FAQ)

Метод find() возвращает курсор ко всем документам, соответствующим запросу, поэтому он может возвращать множество результатов. Метод findOne() возвращает только первый соответствующий документ в виде одного объекта или null, если ни один документ не соответствует запросу.

Последовательно используйте функции sort() и limit() с курсором find(). Например, find().sort({age:1}).limit(5) возвращает пять самых молодых записей. Используйте 1 для возрастающего порядка и -1 для убывающего порядка в функции sort().

Используйте функцию countDocuments() с тем же фильтром, например, db.Employee.countDocuments({EmployeeName:”Smith”}). Она возвращает количество соответствующих документов, не извлекая их, что быстрее, чем чтение и подсчет всего набора результатов.

Искусственный интеллект может преобразовать запрос на простом языке в запрос find() с правильными операторами и проекцией, а также объяснить каждую его часть. Всегда тестируйте запрос на тестовых данных, прежде чем запускать его в рабочей среде.

Да. Искусственный интеллект может анализировать план запроса, выявлять отсутствующие индексы или неэффективные операторы и предлагать индексы или переписанные фильтры. Это помогает разработчикам быстрее повышать производительность функции find() при работе с большими коллекциями.

Подведем итог этой публикации следующим образом: