MongoDB Java 驱动程序 4.0+ 会重试 DBCursor.next() 吗?

ikh*_*ikh 6 java mongodb mongodb-query

我知道collection.find()根据Mongo 文档,Mongo Java 驱动程序将重试,以及大多数其他读取操作。

但是我在文档或驱动程序源中看不到任何地方- 它会重试DBCursor.next()还是DBCursor.hasNext()

use*_*814 2

不,它不会重试基于游标的读取。

由于客户端无法辨别光标是否已前进,因此无法重试 Cursor.getMore()。换句话说,由于驱动程序不知道原始 getMore() 是否成功,因此驱动程序无法可靠地知道结果是否可能被无意中跳过。

更多详细信息请参见 - https://github.com/mongodb/specifications/blob/master/source/retryable-reads/retryable-reads.rst#implementing-retryable-reads