【发布时间】:2015-04-27 01:34:35
【问题描述】:
我尝试创建单个聚合请求,但没有任何运气 - 我需要拆分它。我想我可以做到以下几点:
- 第一个聚合请求将过滤/转换/排序/限制文档
并使用
$out将结果保存到临时集合中 - 之后,我将临时执行 2-3 个聚合请求 收藏
- 最后,我将删除临时集合
通过将数据保存到临时集合中,我将跳过后续聚合请求的过滤/排序/限制阶段。
没事吧?这种方法的开销是多少? $out运算符的主要用途是什么?
【问题讨论】:
-
$out运算符的常见用法是允许使用大于 BSON 文档最大大小的聚合结果(在 MongoDB 3.0 中,内联结果限制为 16MB)。使用$out创建临时/临时集合也是一个合理的用例。如果您尚未在聚合管道上发布问题,那么可能值得这样做,看看是否有更简洁或更有效的方法可以在少于 3-4 次聚合传递中实现相同的结果。我认为很多次通过表明额外的计算甚至可以在客户端代码中更好地完成;-)。
标签: mongodb aggregation-framework