聚合表达式中的变量

在本页面

Aggregation expressions可以使用用户定义的变量和系统变量。

变量可以包含任何BSON 类型数据。要访问该变量的值,请使用一个字符串,该字符串的变量名称以双美元符号($$)为前缀。

如果变量引用一个对象,则要使用该点访问该对象中的特定字段;即"$$<variable>.<field>"

User Variables

用户变量名称可以包含 ASCII 字符[_a-zA-Z0-9]和任何非 ASCII 字符。

用户变量名称必须以小写的 ASCII 字母[a-z]或非 ASCII 字符开头。

System Variables

MongoDB 提供以下系统变量:

VariableDescription
ROOT引用当前在聚合管道阶段处理的根文档(即顶级文档)。
CURRENT引用在聚合管道阶段中正在处理的字段路径的开始。除非另有说明,否则所有阶段均以CURRENTROOT相同开头。


CURRENT是可修改的。但是,由于$<field>等效于$$CURRENT.<field>,因此重新绑定CURRENT会更改$访问的含义。
| REMOVE |评估为缺失值的变量。允许有条件地排除字段。在$projection中,从输出中排除设置为变量REMOVE的字段。
有关其用法的示例,请参见有条件地排除字段
3.6 版中的新功能。
| DESCEND | $redact表达式的允许结果之一。
| PRUNE | $redact表达式的允许结果之一。
| KEEP | $redact表达式的允许结果之一。

See also