1

我在 64 位安装上通过其 C++ API 使用 mongoDB 得到以下错误:

getMore:服务器上不存在游标,可能重新启动或超时?

错误所在的代码片段如下:

std::auto_ptr<mongo::DBClientCursor> cursor =
    connection.query("database.collection", mongo::BSONObj());

while (cursor->more()) {
     // Do stuff
     // Update contents of fields
     connection.update(...);
} 

代码所做的只是根据特定的数据结构更新每个文档字段的内容。

该代码已经用一个小数据集进行了测试,它工作得非常好,所以我认为这不是编码错误,而是与最终数据集大小相关的数据库端错误。

我的错误看起来类似于这个错误报告。那里提出的解决方案是将光标设置为没有超时,但是C++ API没有这样的功能,尽管它似乎存在于其他语言中。

任何建议将不胜感激。

4

0 回答 0