聚合表达式中的变量

在本页面

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

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

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

用户变量

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

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

系统变量

MongoDB 提供以下系统变量:

变量

描述

ROOT

References 根文档,即: top-level 文档,当前正在聚合管道阶段中处理。

CURRENT

Reference 聚合管道阶段中正在处理的字段路径的开始。除非另有说明,否则所有阶段都以CURRENT开头,与ROOT相同。 CURRENT可以修改。但是,由于$<field>等同于$$CURRENT.<field>,因此重新绑定CURRENT会改变$访问的含义。

REMOVE

一个变量,用于计算缺少的 value。允许条件排除字段。在$projection中,从输出中排除设置为变量REMOVE的字段。 有关其用法的示例,请参阅有条件地排除字段。 version 3.6 中的新内容。

DESCEND

$redact表达式的允许结果之一。

PRUNE

$redact表达式的允许结果之一。

KEEP

$redact表达式的允许结果之一。

也可以看看

$let$redact$map

译者:李冠飞

校对: