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
$conexión = new MongoClient();
$colección = $conexión->database->collectionName;
$documento = $colección->findOne();
var_dump( $documento );
?>
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 controlador la añadirá automáticamente.
Si se ha especificado un campo _id, debe ser único en toda la colección. Por ejemplo:
<?php
$conexión = new MongoClient();
$bd = $conexión->database;
$bd->foo->insert(array("_id" => 1));
// esto lanzará una excepción
$bd->foo->insert(array("_id" => 1));
// esto está bien, ya que es una colección diferente
$bd->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 controlador debería no esperar a que la base de datos acepte la escritura y no lanzar la excepción de _id duplicado.
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ítulo Asuntos de Escritura (Write Concerns) entra en detalles sobre las diferentes opciones de Write Concern.