我在 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没有这样的功能,尽管它似乎存在于其他语言中。
任何建议将不胜感激。