On this page
聚合表达式中的变量
在本页面
Aggregation expressions可以使用用户定义的变量和系统变量。
变量可以包含任何BSON 类型数据。要访问该变量的值,请使用一个字符串,该字符串的变量名称以双美元符号($$
)为前缀。
如果变量引用一个对象,则要使用该点访问该对象中的特定字段;即"$$<variable>.<field>"
。
User Variables
用户变量名称可以包含 ASCII 字符[_a-zA-Z0-9]
和任何非 ASCII 字符。
用户变量名称必须以小写的 ASCII 字母[a-z]
或非 ASCII 字符开头。
System Variables
MongoDB 提供以下系统变量:
Variable | Description |
---|---|
ROOT |
引用当前在聚合管道阶段处理的根文档(即顶级文档)。 |
CURRENT |
引用在聚合管道阶段中正在处理的字段路径的开始。除非另有说明,否则所有阶段均以CURRENT与ROOT相同开头。 |
CURRENT是可修改的。但是,由于$<field>
等效于$$CURRENT.<field>
,因此重新绑定CURRENT会更改$
访问的含义。
| REMOVE
|评估为缺失值的变量。允许有条件地排除字段。在$projection
中,从输出中排除设置为变量REMOVE的字段。
有关其用法的示例,请参见有条件地排除字段。
3.6 版中的新功能。
| DESCEND
| $redact表达式的允许结果之一。
| PRUNE
| $redact表达式的允许结果之一。
| KEEP
| $redact表达式的允许结果之一。