Definición
Parámetros
$filter: arreglo|objeto- El criterio de filtro que especifica los documentos a query.
$options: arregloUn arreglo que especifica las opciones deseadas.
NombreTipoDescripciónallowDiskUse
booleano
Permite escribir en archivos temporales. Cuando se establece en
true, las consultas pueden guardar datos en el subdirectorio_tmpen el directoriodbPath.permitir resultados parciales
booleano
For queries against a sharded collection, returns partial results from the
mongosif some shards are unavailable instead of throwing an error.batchSize
entero
El número máximo de documentos dentro de cada lote devueltos en un resultado de query. Por defecto, el comando
findtiene un tamaño de lote inicial de101documentos y un tamaño máximo de 16 mebibytes (MiB) para cada lote subsiguiente. Esta opción puede aplicar un límite menor que 16 MiB, pero no uno mayor. Si configurasbatchSizeen un límite que da como resultado lotes mayores a 16 MiB, esta opción no tiene ningún efecto.batchSize de
0significa que se establecerá el cursor, pero no se devolverán documentos en el primer lote.Unlike the previous wire protocol version, a batchSize of
1for thefindcommand does not close the cursor.códec
MongoDB\Codec\DocumentCodec
Codifica datos con códecs de tipos para codificar o decodificar documentos. Esta opción es mutuamente excluyente con la opción
typeMap.Se configura de forma predeterminada al códec de la colección. La herencia para una opción
codecpor defecto tiene prioridad sobre la de la opcióntypeMap.Nuevo en la versión 1.17.
intercalación
arreglo|objeto
Collation allows users to specify language-specific rules for string comparison, such as rules for lettercase and accent marks. When specifying collation, the
localefield is mandatory; all other collation fields are optional. For descriptions of the fields, see Collation Document.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 perfilador de bases de datos, la salida actualOp() y 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.
cursorTypeadmite 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.
Nuevo 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 está soportado para versiones del servidor anteriores a la 5.0 y resultará en una excepción en el momento de la ejecución si se usa.
Nuevo en la versión 1.13.
limit
entero
El número máximo de documentos a devolver. Si no se especifica, el valor por defecto es ilimitado. Un límite de
0equivale a no establecer ningún 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 solicitará un lote posterior a través de getMore.
máximo
arreglo|objeto
El límite superior exclusivo para un índice específico.
Nuevo en la versión 1.2.
maxAwaitTimeMS
entero
Entero positivo que indica el límite de tiempo en milisegundos para que el servidor bloquee una operación getMore si no hay datos disponibles. Esta opción solo debe utilizarse si cursorType es TAILABLE_AWAIT.
Nuevo en la versión 1.2.
maxScan
entero
Número máximo de documentos o claves de índice a explorar al ejecutar la query.
Obsoleto desde la versión 1.4.
Nuevo en la versión 1.2.
maxTimeMS
entero
El límite de tiempo acumulativo en milisegundos para las operaciones de procesamiento en el cursor. MongoDB aborta la operación lo antes posible tras el punto de interrupción.
min
arreglo|objeto
El límite inferior inclusivo para un índice específico.
Nuevo en la versión 1.2.
modifiers
arreglo|objeto
Operadores meta que modifican la salida o el comportamiento de una query. El uso de estos operadores se ha quedado obsoleto en favor de las opciones nominativas.
noCursorTimeout
booleano
Se previene que el servidor cierre los cursores inactivos tras un periodo de inactividad (10 minutos).
oplogReplay
booleano
Uso interno para sets de réplicas. Para usar
oplogReplay, debes incluir la siguiente condición en el filtro:{ ts: { $gte: <timestamp> } } La referencia de clase MongoDB\BSON\Timestamp describe cómo representar el tipo de sello de tiempo BSON de MongoDB en PHP.
Obsoleto desde la versión 1.7.
proyección
arreglo|objeto
La especificación de proyección para determinar qué campos se incluirán en los documentos devueltos. Consulta Campos de proyecto a devolver de 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 un nivel de consistencia de lectura para operaciones individuales como parte de una transacción. En su lugar, configura la opción
readConcernal 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 únicamente las claves de índice en los documentos resultantes.
Nuevo en la versión 1.2.
sesión
Sesión de cliente para asociar con la operación.
Nuevo 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
$recordIda los documentos devueltos.Nuevo 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.
snapshot
booleano
Evita que el cursor devuelva un documento más de una vez debido a una operación de guardar intermedia.
Obsoleto desde la versión 1.4.
Nuevo en la versión 1.2.
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.
Return Values
Un objeto MongoDB\Driver\Cursor.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se usan opciones que no sean compatibles con el servidor seleccionado (p. ej. collation, readConcern, writeConcern).
MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\RuntimeException para otros errores a nivel de extensión (por ejemplo, " errores de conexión).
Comportamiento
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.
Ejemplos
El siguiente ejemplo encuentra restaurantes basándose en los cuisine campos borough y y utiliza una proyección para limitar los campos que se devuelven. También limita los resultados a 5 documentos.
$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" } }
Ver también
find comando de referencia en el manual de MongoDB