2011-07-01 29 views
3

5萬條記錄,我在我們的項目中使用MongoDB的,我正在學習如何工作蒙戈DB - 最快的方法來檢索集合

我創建了一個集500萬分的記錄。當我在控制檯上查詢db.ProductDetails.find()時,需要花費太多時間來顯示所有數據。

而且當我在C#中使用下面的代碼

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

系統拋出了一段時間後OutOfMemoryException ..

是否有任何其他的更快或更優化的方式來實現這一目標?

+1

爲什麼你想一次獲取500萬條記錄? –

回答

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

嘗試獲得所需要的子集。如果您嘗試獲取所有對象,那麼肯定需要足夠的內存作爲數據庫集合的大小! 嘗試獲取將在應用程序中使用的對象。

+2

歡迎來到Stackoverflow。不要忘記訪問[this](http://stackoverflow.com/questions/how-to-answer)。 – menjaraz