本页介绍 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支持 | |||||||||
Writes the results of the aggregation pipeline to a specified collection. Atlas Data Federation provides alternate syntax for the required | |||||||||
获取聚合管道返回的文档并将它们写入指定的集合。 Atlas Data Federation提供用于写入 S3 和Atlas 集群的备用语法。 要使用 $out写入同一Atlas 集群上不同数据库中的集合,您的Atlas 集群必须使用MongoDB版本.7 0或更高版本。 有关更多信息,请参阅 $out。 | |||||||||
从其输入中随机选择指定数量的文档。 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 等需要启用服务器端脚本的操作符。