Docs Menu
Docs Home
/ /
/ / /

Variables en expresiones de agregación

Las expresiones de agregación pueden usar tanto variables definidas por el usuario como del sistema.

Las variables pueden contener cualquier tipo de dato BSON. Para acceder al valor de la variable, anteponga el nombre de la variable con signos de dólar double ($$); i.e. "$$<variable>".

Si la variable hace referencia a un objeto, para acceder a un campo específico del objeto, use la notación de punto; es decir, "$$<variable>.<field>".

Los nombres de variables de usuario pueden contener los caracteres ASCII [_a-zA-Z0-9] y cualquier carácter que no sea ASCII.

Los nombres de variables de usuario deben comenzar con una letra ascii minúscula [a-z] o un carácter no ascii.

MongoDB ofrece las siguientes variables del sistema:

Variable
Descripción
NOW

Una variable que devuelve el valor actual de fecha y hora. NOW devuelve el mismo valor para todos los nodos de la implementación y permanece igual durante todas las etapas de la canalización de agregación.

CLUSTER_TIME

Una variable que devuelve el valor de marca de tiempo actual.

CLUSTER_TIME solo está disponible en sets de réplicas y clústeres fragmentados.

CLUSTER_TIME devuelve el mismo valor para todos los nodos de la implementación y permanece igual durante todas las etapas del pipeline.

ROOT

Hace referencia al documento raíz, es decir, el documento de nivel superior, que está siendo procesado actualmente en la etapa del pipeline de agregación.

CURRENT

Hace referencia al inicio de la ruta de campo que se está procesando en la etapa del pipeline de agregación. A menos que se documente lo contrario, todas las etapas comienzan con CURRENT lo mismo que ROOT.

CURRENT se puede modificar. Sin embargo, dado que $<field> es equivalente a $$CURRENT.<field>, volver a enlazar CURRENT cambia el significado de los accesos de $.

REMOVE

Una variable que evalúa el valor faltante. Permite la exclusión de campos en las etapas $addFields y $project.

Para ejemplos que utilizan $$REMOVE, ver:

DESCEND

Uno de los resultados permitidos de una expresión $redact.

PRUNE

Uno de los resultados permitidos de una expresión $redact.

KEEP

Uno de los resultados permitidos de una expresión $redact.

SEARCH_META

Una variable que almacena los resultados de metadatos de un Atlas Search query. En todas las etapas soportadas del pipeline de agregación, un campo establecido en la variable $$SEARCH_META devuelve los resultados de metadatos para la query.

Para un ejemplo de su uso, consulta MongoDB Search faceta y count.

USER_ROLES

Devuelve los roles asignados al usuario actual.

Para los casos de uso que incluyen USER_ROLES, consulte los ejemplos de find, aggregation, view, updateOne, updateMany y findAndModify.

El uso de la variable del sistema USER_ROLES en agregaciones no es compatible en clústeres M0 y Flex.

Nuevo en la versión 7.0.

IDX

Devuelve el índice del elemento actual del arreglo. Se puede usar con expresiones $map, $filter y $reduce. El primer elemento del arreglo tiene un índice de 0. Para utilizar la variable $$IDX, omite el campo arrayIndexAs de la expresión.

Para $$IDX ejemplos, consulta ejemplo de índice de map, ejemplo de índice de filtro y ejemplo de índice con reduce.

Nuevo en la versión 8.3.

Tip

Volver

Comparación de comandos

En esta página