Pour montrer que le document inséré dans l'étape précédente est bien stocké dans la base de données, nous pouvons simplement utiliser la méthode MongoCollection::findOne() pour récupérer une seule document de la collection. Cette méthode est utile dans les cas où il n'y a qu'un seul document correspondant aux critères ou bien si vous ne souhaitez qu'un seul résultat.
<?php
$connection = new MongoClient();
$collection = $connection->database->collectionName;
$document = $collection->findOne();
var_dump( $document );
?>
L'exemple ci-dessus va afficher :
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" } }
Notez qu'il y a un champ _id
qui a été ajouté automatiquement
à votre document. _id
est le champ de la clé primaire.
Si votre document n'en spécifie pas une, le driver en ajoutera une
automatiquement.
Si vous spécifiez votre propre champ _id
, il doit être unique
dans la collection. Par exemple :
<?php
$connection = new MongoClient();
$db = $connection->database;
$db->foo->insert(array("_id" => 1));
// ceci émettra une exception
$db->foo->insert(array("_id" => 1));
// ceci est correct, sachant que c'est une collection différente
$db->bar->insert(array("_id" => 1));
?>
Par défaut, le driver va s'assurer que le serveur a reconnu l'écriture
avant de retourner. Vous pouvez optionnellement désactiver ce comportement
en passant array("w" => 0)
en tant que second argument.
Cela signifie que le driver ne va pas attendre la reconnaissance de l'écriture
par le serveur, et n'émettra pas d'exception sur le duplicata de
_id
.
La méthode MongoCollection::findOne() pour plus d'informations sur la recherche de données.
La classe MongoId vous fournira plus de détails sur les identifiants uniques.
La section sur les écritures couvre les écritures en profondeur, et le chapitre Write Concerns va dans le détail des options d'écritures.