聚合表达式中的变量

    在本页面

    聚合表达式可以同时使用 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

    译者:李冠飞

    校对: