对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

支持的聚合管道阶段和操作符

本页介绍 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引入了备用语法,包括警告或偏离服务器 。 有关详细信息,请参阅描述列。

管道阶段
说明

按指定的_id表达式对输入文档进行分组,并为每个不同的分组输出一个文档。 Atlas Data Federation不支持累加器字段的空string键。

示例,支持以下内容:

{
"$group" : {
"_id" : "$representationType",
"" : {
"$sum" : NumberInt(1)
}
}
}

对同一数据库中的集合执行左外连接。Atlas Data Federation还提供用于连接来自不同数据库的集合的语法。有关更多信息,请参阅 $lookup 阶段 (Atlas Data Federation)

过滤文档,以便只将符合特定条件的文档传递到下一个管道阶段。Atlas Data Federation 支持 $match。请注意,用于在 S3 上选择特定文件的 分区属性 仅针对以下 聚合管道操作符 进行了优化:$eq$gt$lt$gte$lte 、 、$ne $and$or$in

聚合管道的结果写入指定的集合。Atlas Data Federation为必填 into字段提供备用语法,以允许写入Atlas 集群。要学习;了解更多信息,请参阅 $merge 阶段 (Atlas Data Federation)

获取聚合管道返回的文档并将它们写入指定的集合。 Atlas Data Federation提供用于写入S 3和Atlas 集群的备用语法。

要使用$out写入同一 Atlas 集群上不同数据库中的集合,您的 Atlas 集群必须使用 MongoDB 7.0或更高版本。

有关更多信息,请参阅 $out

从其输入中随机选择指定数量的文档。 Atlas Data Federation支持$sample ,但不提供真正随机的示例,并返回其找到的第一设立文档。

跳过进入该阶段的指定数量的文档,并将剩余文档传递到管道中的下一阶段。 Atlas Data Federation支持$skip ,但这并不能减少数据扫描,因为Data Federation会访问与您的查询相对应的所有分区。

Atlas Data Federation支持所有聚合管道操作符。但是,某些操作符仅适用于对映射到Atlas 集群数据存储的集合进行查询。地理空间查询操作符仅在此类查询中可用。以下评估查询操作符也仅限于对映射到Atlas 集群数据存储的集合进行查询:

管道阶段
说明

按距离指定点最近到最远的顺序输出文档。 Atlas Data Federation支持在对映射到一个或多个Atlas集合的虚拟集合的查询中使用$geoNear 。 Atlas Data Federation不支持$geoNear S3 HTTP 联合数据库实例存储的 。

有关更多信息,请参阅在Atlas集群中查询数据

对集合执行递归搜索。 Atlas Data Federation支持在对仅映射到一个Atlas集合的虚拟集合的查询中使用$graphLookup 。 Atlas Data Federation不支持$graphLookup

  • S 3HTTP存储。

  • 对映射到多个Atlas集合的虚拟集合进行查询。

有关更多信息,请参阅在Atlas集群中查询数据

对MongoDB Search索引涵盖的字段内容执行全文搜索。

对使用文本索引建立索引的字段内容执行文本搜索。

string将包含JavaScript 表达式的 或完整的JavaScript 函数传递给查询系统。

注意

Atlas Data Federation 不包含服务器端 JavaScript 引擎。因此,Atlas Data Federation 不支持$where$function$accumulator等需要启用服务器端脚本的操作符。