Definición
Parámetros
$filter: arreglo|objeto- El criterio de filtro que especifica los documentos a query.
$options: arregloUna matriz 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
Para queries contra una colección particionada, devuelve resultados parciales de
mongossi algunas particiones no están disponibles, en lugar de mostrar un error.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
typeMapopción.El valor predeterminado es el códec de la colección. La herencia de la opción predeterminada
codecprevalece sobre la de la opcióntypeMap.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
localecampo 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.
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.
máximo
arreglo|objeto
El límite superior exclusivo para un índice específico.
Novedad 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.
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.
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.
oplogReplay
booleano
Uso interno para sets de réplicas. Para usar
oplogReplay, debes incluir la siguiente condición en el filtro:{ ts: { $gte: <timestamp> } } El MongoDB\BSON\Timestamp La referencia de clase describe cómo representar el tipo de marca de tiempo BSON de MongoDB con 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.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
readConcernopció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
$recordIda 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.
Esto se utilizará para el documento de resultados devuelto.
Return Values
Un array u objeto para el primer documento que coincide con la query, o null si ningún documento coincide con la query. El tipo de retorno dependerá de la opción typeMap.
Errores/Excepciones
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).
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
Coincidencia de tipos BSON en los criterios de consulta
En el siguiente ejemplo, los documentos en la colección restaurants usan un ObjectId como su identificador (por defecto) y los documentos de la colección zips usan un string. Dado que ObjectId es un tipo especial de BSON, los criterios de query para seleccionar un restaurante deben usar la clase MongoDB\BSON\ObjectId.
$database = (new MongoDB\Client)->test; $zip = $database->zips->findOne(['_id' => '10036']); $restaurant = $database->restaurants->findOne([ '_id' => new MongoDB\BSON\ObjectId('594d5ef280a846852a4b3f70'), ]);
Proyectando campos
El siguiente ejemplo encuentra un restaurante sobre la base de los campos cuisine y borough y utiliza una proyección para limitar los campos que se devuelven.
$collection = (new MongoDB\Client)->test->restaurants; $restaurant = $collection->findOne( [ 'cuisine' => 'Italian', 'borough' => 'Manhattan', ], [ 'projection' => [ 'name' => 1, 'borough' => 1, 'cuisine' => 1, ], ] ); 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" } }
Ver también
find comando de referencia en el manual de MongoDB