Definición
Parámetros
$filter: matriz|objeto- Los criterios de filtro que especifican los documentos a consultar.
$options: matrizUna 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 consultas sobre una colección fragmentada, devuelve resultados parciales de la
mongossi algunos fragmentos no están disponibles en lugar de generar un error.codec
MongoDB\Códec\DocumentCodec
El 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.Nuevo en la versión 1.17.
intercalación
matriz|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 no se especifica la intercalación, pero la colección tiene una predeterminada, la operación utiliza la intercalación especificada para la colección. Si no se especifica ninguna intercalación para la colección ni para la operación, MongoDB utiliza la comparación binaria simple utilizada en versiones anteriores para las comparaciones de 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 BSON válido a partir de MongoDB 4.4. Las versiones anteriores del servidor solo admiten valores de cadena.
hint
cadena|matriz|objeto
El índice a utilizar. Especifique el nombre del índice como una cadena o el patrón de clave del índice como un documento. Si se especifica, el sistema de consultas solo considerará los planes que utilicen el índice sugerido.
Nuevo en la versión 1.2.
permitir
matriz|objeto
Mapa de nombres y valores de parámetros. Los valores deben ser constantes o expresiones cerradas que no hagan referencia a campos del documento. Se puede acceder a los parámetros como variables en un contexto de expresión agregada (p. ej.,
$$var).Esto no es compatible con versiones de servidor anteriores a 5.0 y generará una excepción en el momento de ejecución si se utiliza.
Novedades en la versión 1.13.
máximo
matriz|objeto
El límite superior exclusivo para un índice específico.
Nuevo en la versión 1.2.
maxTimeMS
entero
El límite de tiempo acumulado en milisegundos para procesar operaciones en el cursor. MongoDB cancela la operación en el punto de interrupción posterior más cercano.
min
matriz|objeto
El límite inferior inclusivo para un índice específico.
Nuevo en la versión 1.2.
proyección
matriz|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
Preocupación de lectura para la operación. El valor predeterminado es la preocupación 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 para la operación. El valor predeterminado es la preferencia de lectura de la colección.
returnKey
booleano
Si es verdadero, devuelve solo las claves de índice en los documentos resultantes.
Nuevo en la versión 1.2.
sesión
Sesión de cliente para asociar a la operación.
Nuevo en la versión 1.3.
showRecordId
booleano
Determina si se devuelve el identificador de registro de 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
matriz|objeto
La especificación del orden para la clasificación de los resultados.
typeMap
arreglo
El mapa de tipos que se aplica a los cursores y que determina cómo se convierten los documentos BSON a valores PHP. El valor predeterminado es el mapa de tipos de la colección.
Esto se utilizará para el documento de resultados devuelto.
Return Values
Una matriz u objeto para el primer documento que coincidió con la consulta, o null si ningún documento coincidió con la consulta. El tipo de retorno dependerá de la typeMap opción.
Errores/Excepciones
MongoDB\Exception\UnsupportedException si se utilizan opciones que no son compatibles con el servidor seleccionado (porcollation readConcernwriteConcernejemplo,,,).
MongoDB\Exception\InvalidArgumentException para 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 de la restaurants colección usan un ObjectId como identificador (predeterminado) y los de la zips colección usan una cadena. Dado que ObjectId es un tipo BSON especial, los criterios de consulta 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 busca un restaurante según los campos cuisine borough y 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);
El resultado sería entonces similar a lo siguiente:
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
Encuentre la referencia del comando en el manual de MongoDB