选择聚合管道阶段
Atlas Search查询在 聚合管道阶段内运行,这是执行聚合的首选方法。
聚合操作处理多个文档并返回计算结果。您可以使用聚合操作来:
将多个文档中的值组合在一起。
对分组数据执行操作,返回单一结果。
分析一段时间内的数据变化。
您可以使用 $search
或 $searchMeta
阶段作为聚合管道中的第一阶段。
聚合管道阶段 | 说明 |
---|---|
执行全文搜索并返回文档的有序列表以及其他搜索元数据。使用 | |
执行全文搜索并返回元数据,而不获取文档。使用 |
在$search
或$searchMeta
阶段完成后,您可以使用其他聚合阶段来进一步进程文档。示例,除了其他阶段外,您还可以使用以下一个或多个阶段:
聚合管道阶段 | 说明 |
---|---|
限制传递至管道下一阶段的文档数量。 | |
跳过进入该阶段的文档,并将剩余文档传递到管道中的下一阶段。 | |
将带有请求字段的文档传递到管道的下一阶段。 | |
向文档添加新字段。 | |
在单个阶段内处理同一设立输入文档上的多个聚合管道。 | |
根据指定的查询谓词筛选文档,并将匹配的文档传递到下一个管道阶段。 | |
通过群组键将具有相同字段或表达式的文档合并为单个文档。 | |
对同一数据库中的集合执行左外连接,以处理“已连接”集合中的文档过滤处理。 |
将这些阶段添加到聚合管道时,请考虑潜在的重大性能影响。
为了提高性能,我们建议您对搜索结果使用 $limit
,根据需要对搜索结果进行分页,并在参考点之后检索搜索结果。