Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

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 datos de BSON. Para acceder al valor de la variable, anteponga el nombre de la variable con signos de dólar double ($$); es decir, "$$<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 de fecha y hora actual. NOW devuelve el mismo valor para todos los nodos de la implementación y permanece igual durante todas las etapas del pipeline 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 es modificable. 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 los metadatos de una consulta de búsqueda de Atlas. En todas las etapas del pipeline de agregación admitidas, un campo configurado en la variable $$SEARCH_META devuelve los resultados de metadatos de la consulta.

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 USER_ROLES variable de sistema en agregaciones no es compatible con los clústeres M y ​​Flex.0

Novedad 7.0 en la versión.:

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.

Novedad 8.3 en la versión.: