Trouver un document en utilisant la méthode MongoCollection::findOne()
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.
Voir aussi
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.
Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-mongo.tutorial.findone.html
L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.
Références
Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.