MongoDB聚合表达式中的变量
文章目录
聚合表达式中可以使用系统或用户自定义变量,变量可以是任意BSON类型的数据,访问变量时使用双美元符前缀($$
),如:"$$<variable>"
。如果变量是一个对象,可以使用点号(.
)访问其字段,如:"$$<variable>.<field>"
。
用户变量
- 用户变量名可以包含ascii字符
[_a-zA-Z0-9]
和非ascii字符。 - 用户变量名必须以小写ascii字符
[a-z]
或非ascii字符开头。
系统变量
MongoDB提供下面的系统变量:
系统变量 | 用途 |
---|---|
NOW |
返回当前的日期时间值。NOW 为部署的所有成员返回相同的值,并在聚合管道的所有阶段保持不变 |
CLUSTER_TIME |
返回当前的时间戳。CLUSTER_TIME 仅适用于副本集和分片集群。CLUSTER_TIME 为部署的所有成员返回相同的值,并且在管道的所有阶段中保持不变 |
ROOT |
引用根文档,即当前正在聚合管道阶段处理的顶级文档 |
CURRENT |
引用聚合管道阶段中正在处理的字段 |