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

可重试读取

可重试读取允许 MongoDB 驱动程序在遇到某些网络或服务器错误时,自动重试某些读取操作一次。

最低驱动程序版本

与MongoDB Server 6.0 及更高版本兼容的官方MongoDB驱动程序支持可重试读取。

有关 MongoDB 官方驱动程序的更多信息,请参阅 MongoDB 驱动程序

最低服务器版本
仅当连接到MongoDB Server 6.0 或更高版本时,驱动程序才能重试读取操作。

与MongoDB Server 6.0 及更高版本兼容的官方MongoDB驱动程序默认启用可重试读取。要显式禁用可重试读取,请在部署的retryReads=false 连接字符串 中指定 。

mongosh 不支持可重试读取。

MongoDB 驱动程序支持重试以下读操作。该列表引用了每种方法的通用说明。有关具体语法和用法,请参阅该方法的驱动程序文档。

方法
描述

Collection.aggregate
Collection.count
Collection.countDocuments
Collection.distinct
Collection.estimatedDocumentCount
Collection.find
Database.aggregate

对于 Collection.aggregateDatabase.aggregate,驱动程序只能重试包括写入阶段的聚合管道,例如 $out$merge

CRUD API 读操作

Collection.watch
Database.watch
MongoClient.watch

变更流操作

MongoClient.listDatabases
Database.listCollections
Collection.listIndexes

枚举操作

Collection.find 支持的 GridFS 操作(例如 GridFSBucket.openDownloadStream

GridFS 文件下载操作

MongoDB 驱动程序可能会对其他操作提供重试支持,例如封装可重试读取操作的辅助方法或方法。请参考驱动程序文档,确定方法是否显式支持可重试读取。

提示

可重试读取规范:支持的读取操作

以下操作支持可重试读取:

MongoDB 可重试读取仅进行一次重试尝试。这有助于解决暂时性网络错误或副本集选举,但不能解决持续性网络错误。

在重试读取操作之前,驱动程序使用读取命令的原始读取偏好执行服务器选择。如果驱动程序无法使用原始读取偏好选择服务器进行重试,则驱动程序会返回原始错误。

在执行服务器选择之前,驱动程序会等待 serverSelectionTimeoutMS 毫秒。可重试读取不会解决等待 serverSelectionTimeoutMS 后不存在符合条件的服务器的情况。