Definición
MongoDB\Collection::aggregate()Ejecuta un pipeline del marco de agregación operación en la colección.
function aggregate( array $pipeline, array $options = [] ): Traversable
Parámetros
$pipeline: arreglo- Especifica una operación de pipeline de agregación.
$options: arregloUna matriz que especifica las opciones deseadas.
NombreTipoDescripciónallowDiskUse
booleano
Permite escribir en archivos temporales. Cuando se establece en
true, las etapas de agregación pueden guardar datos en el subdirectorio_tmpen el directoriodbPath.batchSize
entero
Especifica el tamaño del lote del cursor, que se aplicará tanto al comando
aggregateinicial como a cualquier comandogetMoreposterior. Esto determina el número máximo de documentos que se devolverán en cada respuesta del servidor.Un batchSize de
0es especial en ese sentido y solo se aplicará al comando inicialaggregate; los comandosgetMoreposteriores usarán el tamaño de lotes por defecto del servidor. Esto puede ser útil para devolver rápidamente un cursor o un error deaggregatesin 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 esfalse.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
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 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
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.
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
writeConcernopción al iniciar la transacción.Esto solo se aplica cuando se especifica una etapa $out o $merge.
Return Values
Un objeto MongoDB\Driver\Cursor o ArrayIterator. En ambos casos, el valor de retorno será Traversable.
Errores/Excepciones
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).
Comportamiento
MongoDB\Collection::aggregate()devuelve un objeto MongoDB\Driver\Cursor.
Ejemplos
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.
$collection = (new MongoDB\Client)->test->names; $cursor = $collection->aggregate( [ ['$group' => ['_id' => '$first_name', 'name_count' => ['$sum' => 1]]], ['$sort' => ['_id' => 1]], ] );
Ver también
referencia de comando de aggregate en el manual de MongoDB
Pipelines de agregación documentación en el Manual de MongoDB