SunshinePHP 2020

MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOneЗапрашивает коллекцию, возвращая единственный элемент

Описание

public MongoCollection::findOne ([ array $query = array() [, array $fields = array() [, array $options = array() ]]] ) : array

В отличие от MongoCollection::find(), этот метод будет возвращать только первый результат из набора результатов, а не MongoCursor, который можно перебирать.

Список параметров

query

Поля для поиска. Язык запросов MongoDB довольно обширный. Драйвер PHP почти во всех случаях передает запрос напрямую на сервер, поэтому чтение основных документов MongoDB на » find - хорошая идея.

Внимание

Пожалуйста, убедитесь, что для всех специальных операторов запросов (начинающихся с $) вы используете одинарные кавычки, чтобы PHP не пытался заменить "$exists" значением переменной $exists.

fields

Поля результатов для возврата. Массив находится в формате array('fieldname' => true, 'fieldname2' => true). Поле _id всегда возвращается.

options

Этот параметр является ассоциативным массивом массива формы array("name" => <value>, ...). В настоящее время поддерживаются следующие варианты:

  • "maxTimeMS"

    Указывает суммарный лимит времени в миллисекундах на обработку операции (не включая время простоя) на сервере. Если операция на стороне сервера не завершилась за это время, то вызывается исключение MongoExecutionTimeoutException.

Возвращаемые значения

Возвращает запись, соответствующую запросу или NULL.

Ошибки

Выдает исключение MongoConnectionException, если он не может подключиться к базе данных.

Список изменений

Версия Описание
1.5.0 Добавлен необязательный параметр options.

Примеры

Пример #1 MongoCollection::findOne() документ по его идентификатору.

Этот пример демонстрирует, как найти один документ в коллекции по его идентификатору.

<?php

$articles 
$mongo->my_db->articles;

$article $articles->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));

?>

Пример #2 MongoCollection::findOne() документ по какому-либо условию.

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

<?php

$users 
$mongo->my_db->users;
$user $users->findOne(array('username' => 'jwage'), array('password'));
print_r($user);

?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [_id] => MongoId Object
        (
        )

    [password] => test
)

Обратите внимание, что, хотя в документе есть поле username, мы ограничиваем результаты только полем password.

Смотрите также

  • MongoCollection::find() - Запрашивает коллекцию, возвращая MongoCursor для набора результатов
  • MongoCollection::insert() - Вставляет документ в коллекцию
  • MongoDB основные документы по » find.
add a note add a note

User Contributed Notes 1 note

up
7
dominik at dokdok dot com
9 years ago
There is also a notation to retrieve all fields, but the specified ones

<?php

$users
= $mongo->my_db->users;
$user = $users->findOne(array('username' => 'jwage'), array('password' => 0));
print_r($user);

?>

Will return all fields of the user, but the password field.
To Top