mongo.find.exhaust
を試してみることをお勧めします オプション
cursor <- mongo.find(mongo, query, options=[mongo.find.exhaust])
これは、実際にユースケースで機能する場合に最も簡単な修正です。
ただし、rmongodbドライバーには、他のドライバーで使用できるいくつかの追加機能がないようです。たとえば、JavaScriptドライバーにはCursor.toArray
があります 方法。これは、すべての検索結果を配列に直接ダンプします。 Rドライバーにはmongo.bson.to.list
があります 関数ですが、mongo.cursor.to.list
おそらくあなたが望むものです。おそらく、ドライバー開発者にアドバイスを求める価値があります。
ハッキーな解決策は、ドキュメントがそれぞれ元のドキュメントの100000のデータ「チャンク」である新しいコレクションを作成することです。次に、これらのそれぞれをmongo.bson.to.list
で効率的に読み取ることができます。 。チャンク化されたコレクションは、mongoサーバーのMapReduce機能を使用して構築できます。