Поиск документов с помощью MongoCollection::findOne()

Чтобы показать, что документ, который мы вставили на предыдущем шаге, хранится в базе данных, мы можем выполнить простую операцию MongoCollection::findOne(), чтобы получить один документ из коллекции. Этот метод полезен, когда существует только один документ, соответствующий запросу, или вас интересует только один результат.

<?php
$connection 
= new MongoClient();
$collection $connection->database->collectionName;

$document $collection->findOne();
var_dump$document );
?>

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

array(6) {
  ["_id"]=>
  object(MongoId)#8 (1) {
    ["$id"]=>
    string(24) "4e2995576803fab768000000"
  }
  ["name"]=>
  string(7) "MongoDB"
  ["type"]=>
  string(8) "database"
  ["count"]=>
  int(1)
  ["info"]=>
  array(2) {
    ["x"]=>
    int(203)
    ["y"]=>
    int(102)
  }
  ["versions"]=>
  array(3) {
    [0]=>
    string(5) "0.9.7"
    [1]=>
    string(5) "0.9.8"
    [2]=>
    string(5) "0.9.9"
  }
}

Обратите внимание, что есть поле _id, которое было автоматически добавлено в ваш документ. _id - это поле "первичный ключ". Если в вашем документе он не указан, драйвер добавит его автоматически.

Если вы укажете свое собственное поле _id, оно должно быть уникальным для коллекции. Смотрите пример здесь:

<?php
$connection 
= new MongoClient();
$db $connection->database;

$db->foo->insert(array("_id" => 1));
// это выдаст исключение
$db->foo->insert(array("_id" => 1));

// здесь все хорошо, так как это другая коллекция
$db->bar->insert(array("_id" => 1));
?>

По умолчанию драйвер гарантирует, что сервер подтвердил запись перед возвратом. Вы можете при желании отключить это поведение, передав array("w" => 0) в качестве второго аргумента. Это означает, что драйвер не должен ждать, пока база данных подтвердит запись, и не вызовет исключение дубликата _id.

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

MongoCollection::findOne() для получения дополнительной информации о поиске данных.

MongoId более подробно описывает уникальные идентификаторы.

Раздел записи описывает более детальную запись, а в главе Гарантии записи подробно рассматриваются различные параметры записи.