进入MongoDB中文手册(4.2版本)目录
聚合表达式可以使用用户定义的变量和系统变量。
变量可以保存 任何BSON类型的数据。要访问变量的值,请在变量名前加上双美元符号($$);即"$$<variable>"。
如果变量引用一个对象,则要使用点访问该对象中的特定字段;即"$$<variable>.<field>"。
1 用户变量
用户变量名称可以包含ascii字符[ _a-zA-Z0-9] 和任何非ascii字符。
用户变量名称必须以小写字母[a-z] 或非字母字符开头。
2 系统变量
MongoDB提供以下系统变量:
变量 | 描述 |
---|---|
NOW | 返回当前日期时间值的变量。 NOW对于部署的所有成员返回相同的值,并且在聚合管道的所有阶段都保持相同。 4.2版中的新功能。 |
CLUSTER_TIME | 返回当前时间戳值的变量。 CLUSTER_TIME仅在副本集和分片群集上可用。 CLUSTER_TIME 对于部署的所有成员返回相同的值,并且在管道的所有阶段都保持相同。 4.2版中的新功能。 |
ROOT | 引用在聚合管道阶段当前正在处理的根文档,即顶级文档。 |
CURRENT | 引用在聚合管道阶段中正在处理的字段路径的开头。除非另有记录,所有阶段使用CURRENT和ROOT开始是一样 。 CURRENT是可修改的。但是,由于$<field> 等效于$$CURRENT.<field>,所以重新绑定CURRENT会更改使用$的含义。 |
REMOVE | 评估为缺失值的变量。允许有条件地排除字段。在$projection中,REMOVE从输出中排除设置为变量的字段。 有关其用法的示例,请参见“ 有条件排除字段”。 3.6版的新功能。 |
DESCEND | $redact表达式的允许结果之一。 |
PRUNE | $redact表达式的允许结果之一。 |
KEEP | $redact表达式的允许结果之一。 |