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