聚合表达式中的变量

在本页面

聚合表达式可以同时使用 user-defined 和系统变量。

变量可以容纳任何BSON 类型数据。要访问变量的 value,请使用带有前缀为 double 美元符号($$)的变量 name 的 string。

如果变量 references 一个 object,要访问 object 中的特定字段,请使用点表示法; i.e。 "$$<variable>.<field>"

用户变量

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

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

系统变量

MongoDB 提供以下系统变量:

变量描述
ROOTReferences 根文档,i.e。 top-level 文档,当前正在聚合管道阶段中处理。
CURRENTReference 聚合管道阶段中正在处理的字段路径的开始。除非另有说明,否则所有阶段都以当前开头,与相同。
当前可以修改。但是,由于$<field>等同于$$CURRENT.<field>,因此重新绑定当前会改变$访问的含义。
REMOVE一个变量,用于计算缺少的 value。允许条件排除字段。在$projection中,从输出中排除设置为变量去掉的字段。
有关其用法的示例,请参阅有条件地排除字段
version 3.6 中的新内容。
DESCEND$redact表达式的允许结果之一。
PRUNE$redact表达式的允许结果之一。
KEEP$redact表达式的允许结果之一。

也可以看看 $let$redact$map