Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

MongoDB\Collection::aggregate()

MongoDB\Collection::aggregate()

Ejecuta un pipeline del marco de agregación operación en la colección.

function aggregate(
array $pipeline,
array $options = []
): Traversable
$pipeline : arreglo
Especifica una operación de pipeline de agregación.
$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 etapas de agregación pueden guardar datos en el subdirectorio _tmp en el directorio dbPath.

batchSize

entero

Especifica el tamaño del lote del cursor, que se aplicará tanto al comando aggregate inicial como a cualquier comando getMore posterior. Esto determina el número máximo de documentos que se devolverán en cada respuesta del servidor.

Un batchSize de 0 es especial en ese sentido y solo se aplicará al comando inicial aggregate; los comandos getMore posteriores usarán el tamaño de lotes por defecto del servidor. Esto puede ser útil para devolver rápidamente un cursor o un error de aggregate sin realizar un trabajo significativo del lado del servidor.

bypassDocumentValidation

booleano

Si es true, permite que la operación de escritura evite la validación a nivel de documento. El valor predeterminado es false.

Esto solo se aplica cuando se utilizan las etapas $out y $out.

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 de cualquier tipo válido de BSON para las versiones de servidor 4.4 en adelante. Las versiones anteriores del servidor solo soportan valores string.

Nueva en la versión 1.3.

explicar

booleano

Especifica si se debe devolver o no la información sobre el procesamiento del pipeline.

Nuevo en la versión 1.4.

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.

Nueva en la versión 1.3.

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.

Nuevo en la versión 1.9.

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..

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.

sesión

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

Nueva en la versión 1.3.

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.

writeConcern

nivel de confirmación de escritura (write concern) a usar en la operación. Por defecto, se aplica el nivel de confirmación de escritura (write concern) de la colección.

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

Esto solo se aplica cuando se especifica una etapa $out o $merge.

Un objeto MongoDB\Driver\Cursor o ArrayIterator. En ambos casos, el valor de retorno será Traversable.

MongoDB\Exception\UnexpectedValueException si la respuesta del comando del servidor era incorrecta.

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).

MongoDB\Collection::aggregate()devuelve un objeto MongoDB\Driver\Cursor.

El siguiente ejemplo de agregación utiliza una colección llamada names y agrupa el campo first_name, cuenta el número total de resultados en cada grupo y ordena los resultados por nombre.

<?php
$collection = (new MongoDB\Client)->test->names;
$cursor = $collection->aggregate(
[
['$group' => ['_id' => '$first_name', 'name_count' => ['$sum' => 1]]],
['$sort' => ['_id' => 1]],
]
);

Volver

__construct()

En esta página