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

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 dato de tipo BSON. Para acceder al valor de la variable, anteponga el nombre de la variable con dos signos de dólar ($$); 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 del campo que se procesa en la etapa de canalización de agregación. A menos que se indique lo contrario, todas las etapas comienzan con,CURRENT igual ROOT que.

CURRENT es modificable. Sin embargo, dado que $<field> es equivalente $$CURRENT.<field> a, revincular cambia el significado de CURRENT los $ accesos a.

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 $redact expresión.

PRUNE

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

KEEP

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

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.

Tip

Volver

Comparación de comandos

En esta página