MongoCursor
PHP Manual

MongoCursor::addOption

(PECL mongo >=1.0.4)

MongoCursor::addOptionAñade un par clave/valor de alto nivel a una consulta

Descripción

public MongoCursor MongoCursor::addOption ( string $key , mixed $value )

Esta es una función avanzada y no debería usarse a menos que se sepa lo que se está haciendo.

Una consulta puede ser opcionalmente anidada en un campo "query" si se proporcionan otras opciones, como una ordenación o sugerencia. Por ejemplo, añadir una ordenación ocasiona que la consulta se convierta en un subcampo de un objeto de consulta mayor, como:

<?php

$query 
= array("query" => $query"orderby" => $sort);

?>

Este método se usa para añadir un campo de alto nivel a una consulta. Hace que la consulta sea subobjeto (si ya no lo fuera) y añade el par clave/valor elegido al nivel más alto.

Advertencia

No se puede usar para añadir criterios extra a una consulta al vuelo. Por ejemplo, esto no funcionará:

<?php

// INCORRECTO
$cursor $users->find()->addOption("name""joe")->addOption("age"20);

?>
Esto no consultará por un ususario llamado "joe" de 20 años.

Parámetros

key

El nombre del campo a añadir.

value

El valor a añadir.

Valores devueltos

Returns this cursor.

Errores/Excepciones

Lanza una MongoCursorException si este cursor ha empezado a iterar.

Ejemplos

Ejemplo #1 Ejemplo de MongoCursor::addOption()

El uso de MongoCursor::skip() para omitir millones de resultados puede ser lento. Un atajo para esto es usar las opciones $min o $max para la consulta. Pueden ser útiles, pero requieren un índice exactamente en los campos que van a ser buscados. Este es un ejemplo de cómo usar $min como alternativa a MongoCursor::skip().

<?php

// asegurarse de tener un índice
$c->ensureIndex(array("ts" => 1));

// podría ser necesario modificar esto para ejecutarlo en un tiempo razonable en
// máquinas lentas (debería tomar unos 30 segundos en una buena máquina)
for ($i 0$i 30000000$i++) {
    
$c->insert(array("ts" => new MongoDate(), "i" => $i));
}

$ahora strtotime("now");

// buscar documentos insertados en los últimos 2 segundos
$cursor $c->find()->addOption('$min', array("ts" => $ahora-2));

?>

MongoCursor
PHP Manual