You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB聚合游标是否返回聚合启动后插入的文档?

MongoDB聚合游标是否会返回启动后插入的文档?

答案分以下几种情况:

  • 默认非事务场景(读已提交隔离级别):
    聚合游标不会完全基于启动时的快照工作,但也不会返回所有后续插入的文档:

    • 单集合聚合(未使用$out/$merge阶段):初始数据扫描从命令执行时的集合状态开始,但在游标迭代过程中,如果有新的符合条件的文档被提交写入,游标可能会看到这些新文档——这取决于WiredTiger存储引擎的多版本并发控制机制。
    • 使用$out或$merge阶段的聚合:这类操作会生成最终结果集并写入指定集合,返回的游标仅包含聚合执行完成时的结果,不会包含后续插入的文档。
  • 事务内执行聚合:
    这种情况下游标严格基于事务启动时的快照工作,不会返回聚合命令启动后插入的任何文档,直到事务提交或回滚。

  • 显式指定snapshot读关注点:
    若给聚合命令添加readConcern: { level: "snapshot" }(仅支持多文档事务或单集合操作),游标会锁定命令执行时的数据集快照,完全不会看到后续插入的文档。


内容的提问来源于stack exchange,提问作者MK.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 11:13:12