2011-07-01 9 views
3

から5万件のレコードを取得するための最速の方法私は私たちのプロジェクトでのMongoDBを使用していると私は現在、物事は私が5万のレコードでコレクションを作成しているMongoのDB - コレクション

をどのように機能するかを学んでいます。コンソール上でクエリdb.ProductDetails.find()を起動すると、すべてのデータを表示するのに時間がかかりすぎます。私はC#で次のコードを使用する場合

また

var Products = db.GetCollection("ProductDetails").FindAll().Documents.ToList(); 

システムはいくつかの時間後にOutOfMemoryExceptionをスローします。..

は、これを達成するために、他のより速い以上の最適化された方法はありますか?

+1

なぜ、一度に5百万のレコードを取得したいですか? –

答えて

2

同時にすべてのエントリを取得しようとしないでください。フィルタを使用するか、一度にいくつかの行を取得します。

この質問読む:MongoDB - paging

+0

実際には、一度にコレクション全体を一度に取得する必要があります –

+0

どのプロバイダを使用してすべてのオブジェクトを取得しますか?各オブジェクトの大きさはどれくらいですか? – jgauffin

+0

私は次のコードを使用します。Mongo firsttest = new Mongo(); firsttest.Connect(); var db = firsttest.GetDatabase( "myDB"); var Products = db.GetCollection( "ProductDetails")。FindAll()。Documents.ToList(); –

0

が必要とされているサブセットを取得してくださいを。すべてのオブジェクトをフェッチしようとすると、データベースコレクションのサイズとして十分なRAMが必要であることを確認してください! アプリケーションで使用されるオブジェクトを取得しようとします。

+2

ようこそStackoverflowへ。 [this](http://stackoverflow.com/questions/how-to-answer)にアクセスすることを忘れないでください。 – menjaraz