与文本索引一起使用时,Mongo curosr批量大小是否存在错误?

时间:2016-10-16 19:35:19

标签: mongodb cursor

我已经看到了MongoDB中的一个错误(使用服务器版本3.2.9)。情况如下:

我有一个在id字段(一个字符串)上有一个简单索引的集合,以及一个包含几个字段(不包括id字段)的全文索引,我正在执行一个匹配简单字段的查询(它实际上是来自许多用户的文档的集合中的用户ID),使用$ meta投影(和查询)来获得按文本匹配分数排序的结果。

如果我在DBCursor上强制使用非默认的batchSize,则find()会给我(Java驱动程序),然后游标的后续迭代在第一批之后终止。如果我没有调用batchSize(),那么迭代会根据需要愉快地遍历批处理。

在调试器中深入挖掘一下,如果我将批处理大小保留为默认值(0),那么Mongo服务器的初始响应似乎会返回cursorId,但如果我尝试请求显式批处理大小,则不会返回cursorId。缺少cursorId会导致迭代在耗尽初始批次后停止。

根据经验,只有在涉及文本索引时才会发生这种情况。

这是一个已知的错误还是我错过了什么?如果前者有一个已知的工作?

0 个答案:

没有答案