MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOneQueries this collection, returning a single element

Descrierea

public MongoCollection::findOne ( array $query = array() , array $fields = array() , array $options = array() ) : array

As opposed to MongoCollection::find(), this method will return only the first result from the result set, and not a MongoCursor that can be iterated over.

Parametri

query

The fields for which to search. MongoDB's query language is quite extensive. The PHP driver will in almost all cases pass the query straight through to the server, so reading the MongoDB core docs on » find is a good idea.

Avertizare

Please make sure that for all special query operaters (starting with $) you use single quotes so that PHP doesn't try to replace "$exists" with the value of the variable $exists.

fields

Fields of the results to return. The array is in the format array('fieldname' => true, 'fieldname2' => true). The _id field is always returned.

options

This parameter is an associative array of the form array("name" => <value>, ...). Currently supported options are:

  • "maxTimeMS"

    Specifică o limită de timp cumulativă în milisecunde pentru procesarea operațiunii pe server (nu include timpul de așteptare). Dacă operațiunea nu este terminată pe server în timpul rezervat, va fi emisă o MongoExecutionTimeoutException.

Valorile întoarse

Returns record matching the search or null.

Erori/Excepții

Throws MongoConnectionException if it cannot reach the database.

Istoricul schimbărilor

Versiune Descriere
PECL mongo 1.5.0 Added optional options argument.

Exemple

Example #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')));

?>

Example #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);

?>

Exemplul de mai sus va afișa ceva similar cu:

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.

A se vedea și

add a note add a note

User Contributed Notes 1 note

up
7
dominik at dokdok dot com
14 years ago
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.
To Top