0
我想從一個C#控制檯應用程序中的遠程MongoDB實例讀取數據,但不斷得到一個OutOfMemoryException。我試圖從中讀取數據的集合有大約500,000條記錄。有誰看到下面的代碼中的任何問題:C#MongoDB驅動程序OutOfMemoryException
var mongoCred = MongoCredential.CreateMongoCRCredential("xdb", "x", "x");
var mongoClientSettings = new MongoClientSettings
{
Credentials = new[] { mongoCred },
Server = new MongoServerAddress("x-x.mongolab.com", 12345),
};
var mongoClient = new MongoClient(mongoClientSettings);
var mongoDb = mongoClient.GetDatabase("xdb");
var mongoCol = mongoDb.GetCollection<BsonDocument>("Persons");
var list = await mongoCol.Find(new BsonDocument()).ToListAsync();
你真的想要一次獲取所有500k文件嗎?什麼是用例? –
你正試圖將你的整個Persons集合一次寫入內存。你沒有足夠的記憶。您可能需要更受限制的結果集,或者您需要以流式處理方式處理結果。與'ForEachAsync'而不是'ToListAsync' –
@JoachimIsaksson我一次不需要全部500k。目標是將所有記錄獲取到CSV文件。我打算輕微地按摩一些田地。 – degmo