SunshinePHP 2020 CFP Started

MongoCollection::findOne

(PECL mongo >=0.9.0)

MongoCollection::findOneRealiza una consulta a esta colección, devolviendo sólo un elemento

Descripción

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

A diferencia de MongoCollection::find(), este método solamente devolverá el primer resultado del conjunto de resultados, y no una instancia de MongoCursor que se pueda recorrer.

Parámetros

query

Los campos en los que buscar. El lenguaje de consultas de MongoDB es bastante extenso. El controlador de PHP, en la mayoría de los casos, pasará la consulta directamente al servidor, por lo que es una buena idea leer el manual de MongoDB sobre » find.

Advertencia

Asegúrese de que en todos los operadores de consulta especiales (los que empiezan con $) se usen comillas simples, ya que así PHP no intentará reemplazar "$exists" con el valor de la variable $exists.

fields

Campos del resultado que se devolverán. El array está en el formato array('nombrecampo' => true, 'nombrecampo2' => true). El campo _id se devuelve siempre.

options

Este parámetro es un array asociativo de la forma array("nombre" => <valor>, ...). Las opciones disponibles actualmente son:

  • "maxTimeMS"

    Especifica un tiempo límite acumulativo en milisegundos para procesar la operación en el servdiro (no incluye el tiempo improductivo). Si la operación no la completa el servidor dentro del período de tiempo límite, se lanzará una MongoExecutionTimeoutException.

Valores devueltos

Devuelve el registro que coincide con la búsqueda, o NULL.

Errores/Excepciones

Lanza una MongoConnectionException si no se puede acceder a la base de datos.

Historial de cambios

Versión Descripción
1.5.0 Se añadió el parámetro opcional options.

Ejemplos

Ejemplo #1 Ejemplo de MongoCollection::findOne() buscando por id.

Este ejemplo muestra cómo buscar un documento en una colección a partir de su id.

<?php

$artículos 
$mongo->mi_bd->artículos;

$artículo $artículos->findOne(array('_id' => new MongoId('47cc67093475061e3d9536d2')));

?>

Ejemplo #2 Ejemplo de MongoCollection::findOne() a partir de una condición.

Este ejemplo muestra como buscar un documento en una colección a partir de una condición, limitando los campos devueltos.

<?php

$usuarios 
$mongo->mi_bd->usuarios;
$usuario $usuarios->findOne(array('nombreusuario' => 'jwage'), array('contraseña'));
print_r($usuario);

?>

El resultado del ejemplo sería algo similar a:

Array
(
    [_id] => MongoId Object
        (
        )

    [password] => test
)

Observe que, incluso si el documento no contiene el campo "nombreusuario", se limitan los resultados para que únicamente contengan el campo "contraseña".

Ver también

add a note add a note

User Contributed Notes 1 note

up
7
dominik at dokdok dot com
8 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