文档菜单
文档首页
/
MongoDB 手册
/ /

聚合表达式中的变量

本页内容

  • 用户变量
  • 系统变量

聚合表达式可以使用用户定义和系统变量。

变量可以存储任何 BSON 类型数据。要访问变量的值,请使用双美元符号($$)作为变量名称的前缀;即 "$$<variable>"

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

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

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

MongoDB提供以下系统变量

变量
描述
NOW
返回当前日期时间的变量。NOW 返回部署中所有成员相同的值,并在聚合管道的所有阶段保持不变。
CLUSTER_TIME

返回当前时间戳值的变量。

CLUSTER_TIME仅在副本集和分片集群中可用。

CLUSTER_TIME对于部署中的所有成员返回相同的值,并且在管道的所有阶段保持不变。

ROOT
引用正在聚合管道阶段处理的根文档,即顶级文档。
CURRENT

引用正在聚合管道阶段处理的字段路径的起始位置。除非另有说明,所有阶段都从CURRENTROOT相同的值开始。

CURRENT 可以修改。然而,由于 $<field>$$CURRENT.<field> 等价,重新绑定 CURRENT 会改变 $ 访问的含义。

REMOVE

一个计算结果为缺失值的变量。允许在 $addFields$project 阶段中排除字段。

有关使用 $$REMOVE 的示例,请参阅

DESCEND
$redact 表达式允许的返回结果之一。
PRUNE
$redact 表达式允许的返回结果之一。
KEEP
$redact 表达式允许的返回结果之一。
SEARCH_META

一个存储 Atlas Search 查询的元数据结果的变量。在所有支持的聚合管道阶段,将字段设置为变量 $$SEARCH_META 时,将返回查询的 元数据结果

有关其使用示例,请参阅 Atlas Search 的 分面计数。

USER_ROLES

返回分配给当前用户的 角色

对于包含 USER_ROLES 的用例,请参阅 find聚合视图updateOneupdateManyfindAndModify 的示例。

新增版本7.0.

提示

另请参阅

返回

命令比较