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