我在64位安装上使用mongoDB通过其C ++ API获得以下错误:
getMore:服务器上没有游标,可能重启或超时?
错误所在的代码段如下:
std::auto_ptr<mongo::DBClientCursor> cursor =
connection.query("database.collection", mongo::BSONObj());
while (cursor->more()) {
// Do stuff
// Update contents of fields
connection.update(...);
}
代码的作用是根据特定的数据结构更新每个文档字段的内容。
代码已经过一个小数据集的测试,它运行得很好,所以我认为这不是编码错误,而是与最终数据集大小相关的数据库端错误。 / p>
我的错误与this bug report类似。在那里提出的解决方案是将光标设置为没有超时,但C++ API没有这样的功能,尽管它似乎存在于其他语言中。
我们非常感谢任何建议。