【发布时间】:2019-03-26 23:59:00
【问题描述】:
我有 2 周的时间学习和使用 MongoDB,我正在使用 DataGridview 构建一个简单的 WinForm APP。
一切正常,但我添加了超过 1.000.000 个文档,现在它显示了这个错误:
MongoDB.Driver.MongoCommandException: '命令聚合失败:排序超出 104857600 字节的内存限制,但未选择外部排序。中止操作。传递 allowDiskUse:true 以选择加入..'
我已经检查了我所有的周末谷歌如何使用 Aggreate allowDiskUse:true 但它也不起作用。
谢谢。
public void ReadAllDocuments()
{
List<Clientes> list = collection.AsQueryable().OrderBy(q => q.Nombre).ToList();
dataGridView1.DataSource = list;
if (dataGridView1.Rows.Count > 0)
{
textBox1.Text = dataGridView1.Rows[0].Cells[0].Value.ToString();
textBox2.Text = dataGridView1.Rows[0].Cells[1].Value.ToString();
textBox3.Text = dataGridView1.Rows[0].Cells[2].Value.ToString();
}
}
【问题讨论】:
-
您应该限制从 MongoDb 检索的项目数量,请参阅stackoverflow.com/questions/24262020/…
-
通过调用 ToList() 您强制检索 1m 文档。无论 Mongo 的内存限制如何,您都不会在 DataGridView 中获得它。
-
@RuiJarimba 非常感谢!!是的,我应该限制它!我正在学习,我不知道。我创建了一个 for 循环来过度饱和我的数据库。现在我明白了规则。谢谢你的回答。
标签: c# .net mongodb mongodb-query mongodb-.net-driver