(PECL mongo >=0.9.0)
MongoCollection::findOne — Querys this collection, returning a single element
The fields for which to search.
Fields of the results to return.
Returns record matching the search or NULL.
Throws MongoConnectionException if it cannot reach the database.
Beispiel #1 MongoCollection::findOne() document by its id.
This example demonstrates how to find a single document in a collection by its id.
<?php
$articles = $mongo->my_db->articles;
$article = $articles->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));
?>
Beispiel #2 MongoCollection::findOne() document by some condition.
This example demonstrates how to find a single document in a collection by some condition and limiting the returned fields.
<?php
$users = $mongo->my_db->users;
$user = $users->findOne(array('username' => 'jwage'), array('password'));
print_r($user);
?>
Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:
Array ( [_id] => MongoId Object ( ) [password] => test )
Notice how even though the document does have a username field, we limited the results to only contain the password field.
Special characters seem to be automatically escaped by the Mongo driver.
<?php
$db = $mongo->my_db->wireless_service_providers;
$provider = $db->findOne(array("name" => "AT&T"), array('_id' => 1));
print_r($provider);
?>
if the value is stored as "AT&T" in the document you will get
Array([_id]=>)
but if the value is stored as "AT&T" it will return
Array ( [_id] => MongoId Object ( ) )
There is also a notation to retrieve all fields, but the specified ones
<?php
$users = $mongo->my_db->users;
$user = $users->findOne(array('username' => 'jwage'), array('password' => 0));
print_r($user);
?>
Will return all fields of the user, but the password field.