Learn the "why" behind slow queries and how to fix them in our 2-Part Webinar.
Register now >
Docs Menu
Docs Home
/ /

MongoDB\Collection::find()

MongoDB\Collection::find()

Encuentra documentos que coincidan con la query.

function find(
array|object $filter = [],
array $options = []
): MongoDB\Driver\Cursor
$filter : arreglo|objeto
El criterio de filtro que especifica los documentos a query.
$options : arreglo

Una matriz que especifica las opciones deseadas.

Nombre
Tipo
Descripción

allowDiskUse

booleano

Permite escribir en archivos temporales. Cuando se establece en true, las consultas pueden guardar datos en el subdirectorio _tmp en el directorio dbPath.

permitir resultados parciales

booleano

Para queries contra una colección particionada, devuelve resultados parciales de mongos si algunas particiones no están disponibles, en lugar de mostrar un error.

batchSize

entero

El número máximo de documentos dentro de cada lote devuelto en el resultado de una consulta. De forma predeterminada, el comando find tiene un tamaño de lote inicial de 101 documentos y un tamaño máximo de 16 mebibytes (MiB) para cada lote posterior. Esta opción puede imponer un límite inferior a 16 MiB, pero no superior. Si se establece batchSize en un límite que genere lotes superiores a 16 MiB, esta opción no tiene efecto.

Un tamaño de lote de 0 significa que se establecerá el cursor, pero no se devolverán documentos en el primer lote.

A diferencia de la versión anterior del protocolo de cable, un batchSize de 1 para el comando no cierra el find cursor.

códec

MongoDB\Codec\DocumentCodec

La Codificar datos con códecs de tipo para codificar o decodificar documentos. Esta opción es mutuamente excluyente con la typeMap opción.

El valor predeterminado es el códec de la colección. La herencia de la opción predeterminada codec prevalece sobre la de la opción typeMap.

Novedad en la versión 1.17.

intercalación

arreglo|objeto

Laintercalación permite a los usuarios especificar reglas específicas del idioma para la comparación de cadenas, como el uso de mayúsculas y minúsculas y tildes. Al especificar la intercalación, el locale campo es obligatorio; todos los demás campos son opcionales. Para obtener descripciones de los campos, consulte el documento de intercalación.

Si la intercalación no está especificada pero la colección tiene una intercalación predeterminada, la operación utiliza la intercalación especificada para la colección. Si no se especifica una intercalación para la colección o para la operación, MongoDB utiliza la comparación binaria simple utilizada en versiones anteriores para comparar cadenas.

comment

mixto

Permite a los usuarios especificar un comentario arbitrario para ayudar a rastrear la operación a través del generador de perfiles de base de datos, la salidacurrentOp y los registros.

El comentario puede ser cualquier tipo válido de BSON a partir de MongoDB 4.4. Las versiones anteriores del servidor solo admiten valores de string.

cursorType

entero

Indica el tipo de cursor a utilizar. cursorType admite los siguientes valores:

  • MongoDB\Operation\Find::NON_TAILABLE (por defecto)

  • MongoDB\Operation\Find::TAILABLE

hint

cadena|arreglo|objeto

El índice a utilizar. Especifique el nombre del índice como una string o el patrón clave del índice como un documento. Si se especifica, el sistema de query solo considerará los planes que utilicen el índice sugerido.

Novedad en la versión 1.2.

permitir

arreglo|objeto

Mapa de nombres de parámetros y valores. Los valores deben ser expresiones constantes o cerradas que no hagan referencia a los campos del documento. Posteriormente, se puede acceder a los parámetros como variables en el contexto de una expresión de agregación (por ejemplo, $$var).

Esto no es compatible con versiones de servidor anteriores a 5.0 y, si se utiliza, generará una excepción en el momento de ejecución.

Novedades en la versión 1.13.

limit

entero

El número máximo de documentos a devolver. Si no se especifica, el valor predeterminado es "sin límite". Un límite de 0 equivale a "sin límite".

Un límite negativo es similar a un límite positivo, pero cierra el cursor después de devolver un solo agrupar de resultados. Por lo tanto, con un límite negativo, si el conjunto de resultados limitado no cabe en un solo lote, el número de documentos recibidos será menor que el límite especificado. Al pasar un límite negativo, el cliente indica al servidor que no pedirá un lote posterior usando getMore.

máximo

arreglo|objeto

El límite superior exclusivo para un índice específico.

Novedad en la versión 1.2.

maxAwaitTimeMS

entero

Entero positivo que indica el límite de tiempo en milisegundos que el servidor debe utilizar para bloquear una operación getMore si no hay datos disponibles. Esta opción solo debe usarse si cursorType es TAILABLE_AWAIT.

Novedad en la versión 1.2.

maxTimeMS

entero

El límite de tiempo acumulado en milisegundos para las operaciones de procesamiento en el cursor. MongoDB aborta la operación en el siguiente punto de interrupción..

min

arreglo|objeto

El límite inferior inclusivo para un índice específico.

Novedad en la versión 1.2.

noCursorTimeout

booleano

Se previene que el servidor cierre los cursores inactivos tras un periodo de inactividad (10 minutos).

proyección

arreglo|objeto

La especificación de proyección para determinar qué campos se incluirán en los documentos devueltos.Consulte Campos de proyecto que se devolverán desde la consulta y Operadores de proyección en el manual de MongoDB.

readConcern

Nivel de consistencia de lectura para usar en la operación. Por defecto, adopta el nivel de consistencia de lectura de la colección.

No es posible especificar una preocupación de lectura para operaciones individuales como parte de una transacción. En su lugar, configure la readConcern opción al iniciar la transacción.

readPreference

Preferencia de lectura a utilizar para la operación. Por defecto, se utiliza la preferencia de lectura de la colección.

returnKey

booleano

Si es verdadero, devuelve solo las claves de índice en los documentos resultantes.

Novedad en la versión 1.2.

sesión

Sesión de cliente para asociar a la operación.

Nueva en la versión 1.3.

showRecordId

booleano

Determina si se debe devolver el identificador de registro para cada documento. Si es verdadero, añade un campo $recordId a los documentos devueltos.

Novedad en la versión 1.2.

Omitir

entero

Número de documentos para omitir. Se establece por defecto en 0.

sort

arreglo|objeto

La especificación del orden para la clasificación de los resultados.

typeMap

arreglo

El mapa de tipos para aplicar a cursores, que determina cómo se convierten los documentos BSON en valores PHP. Por defecto, se utiliza el mapa de tipos de la colección.

Un objeto MongoDB\Driver\Cursor.

MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).

MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.

MongoDB\Driver\Exception\RuntimeException para otros errores en el nivel de extensión (por ejemplo, errores de conexión).

Al evaluar los criterios de búsqueda, MongoDB compara tipos y valores según sus propias reglas de comparación para tipos BSON, que difieren de las reglas de comparación y manejo de tipos de PHP. Cuando se coincida con un tipo BSON especial, los criterios de consulta deben utilizar la Clase BSON respectiva en la extensión (por ejemplo, usa MongoDB\BSON\ObjectId para hacer coincidir con un ObjectId.

El siguiente ejemplo busca restaurantes según los campos cuisine y borough y utiliza una proyección para limitar los campos que se devuelven. También limita los resultados a 5 documentos.

<?php
$collection = (new MongoDB\Client)->test->restaurants;
$cursor = $collection->find(
[
'cuisine' => 'Italian',
'borough' => 'Manhattan',
],
[
'limit' => 5,
'projection' => [
'name' => 1,
'borough' => 1,
'cuisine' => 1,
],
]
);
foreach ($cursor as $restaurant) {
var_dump($restaurant);
};

La vista de salida se ilustraría como sigue:

object(MongoDB\Model\BSONDocument)#10 (1) {
["storage":"ArrayObject":private]=>
array(4) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#8 (1) {
["oid"]=>
string(24) "576023c6b02fa9281da3f983"
}
["borough"]=>
string(9) "Manhattan"
["cuisine"]=>
string(7) "Italian"
["name"]=>
string(23) "Isle Of Capri Resturant"
}
}
object(MongoDB\Model\BSONDocument)#13 (1) {
["storage":"ArrayObject":private]=>
array(4) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#12 (1) {
["oid"]=>
string(24) "576023c6b02fa9281da3f98d"
}
["borough"]=>
string(9) "Manhattan"
["cuisine"]=>
string(7) "Italian"
["name"]=>
string(18) "Marchis Restaurant"
}
}
object(MongoDB\Model\BSONDocument)#8 (1) {
["storage":"ArrayObject":private]=>
array(4) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#10 (1) {
["oid"]=>
string(24) "576023c6b02fa9281da3f99b"
}
["borough"]=>
string(9) "Manhattan"
["cuisine"]=>
string(7) "Italian"
["name"]=>
string(19) "Forlinis Restaurant"
}
}
object(MongoDB\Model\BSONDocument)#12 (1) {
["storage":"ArrayObject":private]=>
array(4) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#13 (1) {
["oid"]=>
string(24) "576023c6b02fa9281da3f9a8"
}
["borough"]=>
string(9) "Manhattan"
["cuisine"]=>
string(7) "Italian"
["name"]=>
string(22) "Angelo Of Mulberry St."
}
}
object(MongoDB\Model\BSONDocument)#10 (1) {
["storage":"ArrayObject":private]=>
array(4) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#8 (1) {
["oid"]=>
string(24) "576023c6b02fa9281da3f9b4"
}
["borough"]=>
string(9) "Manhattan"
["cuisine"]=>
string(7) "Italian"
["name"]=>
string(16) "V & T Restaurant"
}
}

Volver

explicar()

En esta página