本页介绍 Atlas Data Federation 支持的 MongoDB 聚合管道阶段和操作符。
注意
默认情况下,对于 S3 数据存储的 Data Federation 查询,Atlas Data Federation 不会以任何特定顺序返回文档结果。Atlas Data Federation 会并发读取分区,底层存储响应顺序决定了 Atlas Data Federation 首先返回哪些文档,除非您在查询中使用 $sort 来定义顺序。例如,如果运行同一 findOne() 查询两次,可能会看到不同的文档,而如果使用 $skip,则可能会跳过不同的文档(如果在查询中没有使用 $sort)。
支持和不支持的聚合管道阶段
Atlas Data Federation支持所有聚合管道阶段,但以下阶段除外:
对于Atlas Data Federation查询的以下阶段, Atlas Data Federation引入了备用语法,包括警告或偏离服务器 。 有关详细信息,请参阅描述列。
管道阶段 | 说明 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
按指定的 示例,不支持以下内容: | |||||||||
对同一数据库中的集合执行左外连接。Atlas Data Federation还提供用于连接来自不同数据库的集合的语法。有关更多信息,请参阅 | |||||||||
筛选文档,仅将符合指定条件的文档传递到下一个管道阶段。 Atlas Data Federation支持 | |||||||||
将聚合管道的结果写入指定的集合。Atlas Data Federation为必填 | |||||||||
从其输入中随机选择指定数量的文档。 Atlas Data Federation支持 | |||||||||
跳过进入该阶段的指定数量的文档,并将剩余文档传递到管道中的下一阶段。 Atlas Data Federation支持 |
支持的聚合管道操作符
Atlas Data Federation支持所有聚合管道操作符。但是,某些操作符仅适用于对映射到Atlas 集群数据存储的集合进行查询。地理空间查询操作符仅在此类查询中可用。以下评估查询操作符也仅限于对映射到Atlas 集群数据存储的集合进行查询:
管道阶段 | 说明 |
|---|---|
按距离指定点最近到最远的顺序输出文档。 Atlas Data Federation支持在对映射到一个或多个Atlas集合的虚拟集合进行查询时使用 有关更多信息,请参阅在Atlas集群中查询数据。 | |
对集合执行递归搜索。 Atlas Data Federation支持在对仅映射到一个Atlas集合的虚拟集合的查询中使用
有关更多信息,请参阅在Atlas集群中查询数据。 | |
对MongoDB Search索引涵盖的字段内容执行全文搜索。 | |
对使用文本索引建立索引的字段内容执行文本搜索。 | |
string将包含JavaScript 表达式的 或完整的JavaScript 函数传递给查询系统。 |
注意
Atlas Data Federation 不包含服务器端 JavaScript 引擎。因此,Atlas Data Federation 不支持$where、 $function和$accumulator等需要启用服务器端脚本的操作符。