0
リモートのMongoDBインスタンスからC#コンソールアプリケーションからデータを読み込もうとしていますが、OutOfMemoryExceptionが引き続き発生しています。データを読み込もうとしているコレクションには、約50万レコードがあります。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コレクション全体を一度にメモリに収めようとしています。十分な記憶がありません。より拘束された結果セットが必要な場合や、結果をストリーミングで処理する必要がある場合'ToListAsync'ではなく' ForEachAsync'で –
@JoachimIsaksson私は一度に500kすべてを必要としません。目標は、すべてのレコードをCSVファイルに取得することです。私はフィールドのいくつかを少しマッサージする予定です。 – degmo