В MongoDB, когда вы выполняете запрос к коллекции данных, результатом по умолчанию является массив документов, удовлетворяющих вашему запросу. Однако, если вы хотите получить всего один документ вместо массива, есть несколько способов это сделать.
Первый способ - использовать метод findOne()
. Этот метод возвращает только один документ, первый, который удовлетворяет вашему запросу. Например, если вы хотите получить документ, у которого поле name
равно "John", можно использовать следующий код:
db.collection("myCollection").findOne({ name: "John" }, function(err, result) { if (err) throw err; console.log(result); });
Второй способ - использовать метод find()
и вызвать на нем метод limit()
с аргументом 1. Это ограничивает количество возвращаемых документов до одного. Вот пример:
db.collection("myCollection").find({ name: "John" }).limit(1).toArray(function(err, result) { if (err) throw err; console.log(result); });
Обратите внимание, что оба этих метода findOne()
и find().limit(1)
могут возвращать null
, если нет ни одного документа, удовлетворяющего вашему запросу.
Также стоит отметить, что получение только одного документа вместо массива может быть полезным, если вы знаете, что ожидаете только один результат запроса и хотите избежать использования массива или обработки его элементов.