(PECL mongo >=1.0.4)
MongoCursor::addOption — Añade un par clave/valor de alto nivel a una consulta
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.
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);
?>
key
El nombre del campo a añadir.
value
El valor a añadir.
Returns this cursor.
Lanza una MongoCursorException si este cursor ha empezado a iterar.
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));
?>