Tutorial
PHP Manual

Localizando documentos usando MongoCollection::findOne()

Para comprobar que el documento que insertamos en el paso anterior está almacenado en la base de datos, podemos realizar una operación MongoCollection::findOne() para obtener un único documento de la colección. Este método es útil cuando sólo hay un documento que concuerde con la consulta, o cuando sólo se está interesado en un resultado.

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

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

El resultado del ejemplo sería:

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"
  }
}

Hay un campo _id que se ha añadido automáticamente al documento. _id es el campo de la "clave primaria". Si el documento no especifica una, el driver la añadirá automáticamente.

Si se ha especificado un campo _id, debe ser único en toda la colección. Por ejemplo:

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

$db->foo->insert(array("_id" => 1));
// esto lanzará una excepción
$db->foo->insert(array("_id" => 1));

// esto está bien, ya que es una colección diferente
$db->bar->insert(array("_id" => 1));
?>

Por omisión, el controlador se asegurará de que el servidor ha aceptado la escritura antes de devolver. Opcionalmente se puede desactivar este comportamiento pasando array("w" => 0) como segundo argumento. Esto significa que el contrlador debería no esperar a que la base de datos acepte la escritura y no lanzar la excpeción de _id duplicado.

Ver También

MongoCollection::findOne() contiene más información sobre cómo localizar datos.

MongoId ofrece más detalles de los identificadores únicos.

La sección writes trata las escrituras en mayor profundidad, y el capítlo Asuntos de Escritura (Write Concerns) entra en detalles sobre las diferentes opciones de Write Concern.


Tutorial
PHP Manual