Метод MongoDB findOne: получение одного документа с примерами

Mongosh findone — это команда, используемая в оболочке MongoDB для получения одного документа из коллекции MongoDB, соответствующего указанным критериям запроса. Вот несколько методов с примерами кода, демонстрирующие использование метода findOneв MongoDB:

Метод 1: базовое использование

db.collection.findOne({ <query> })

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

Пример:

db.users.findOne({ name: "John" })

Этот запрос вернет первый документ в коллекции «пользователи», в котором поле имени равно «Джон».

Метод 2: сортировка и проецирование

db.collection.findOne({ <query> }, { <projection> })

Этот метод позволяет указать проекцию для включения или исключения определенных полей из возвращаемого документа. Вы также можете применить к запросу критерии сортировки.

Пример:

db.users.findOne({ age: { $gt: 18 } }, { name: 1, age: 1 })

Этот запрос вернет первый документ в коллекции «пользователи», возраст которого превышает 18 лет, включая только поля имени и возраста.

Метод 3: использование параметров

db.collection.findOne({ <query> }, { <projection> }, { <options> })

Этот метод позволяет указать дополнительные параметры, такие как максимальное время ожидания документа или возможность чтения.

Пример:

db.users.findOne({ status: "active" }, { name: 1 }, { maxTimeMS: 1000 })

Этот запрос вернет первый документ в коллекции «пользователи» со статусом «активный» и ограничит время выполнения 1 секундой.

Метод 4. Обработка ошибок

db.collection.findOne({ <query> }) || null

Этот метод позволяет обрабатывать случаи, когда ни один документ не соответствует критериям запроса. Используя || null, вы можете назначить значение по умолчанию null, если документ не найден.

Пример:

const user = db.users.findOne({ email: "nonexistent@example.com" }) || null;
if (!user) {
  console.log("User not found");
}