Mongodb C # Query Sort превысил предел памяти - PullRequest
0 голосов
/ 22 октября 2018

У меня 2 недели обучения и работы с MongoDB, я создаю простое приложение WinForm с DataGridview.

Все работало нормально, но я добавил более 1.000.000 документов, и теперь он показывает эту ошибку:

MongoDB.Driver.MongoCommandException: 'Сбой команды: Сортировка превышена в памятиограничение 104857600 байт, но не разрешено внешняя сортировка.Отмена операции.Передайте allowDiskUse: true, чтобы выбрать .. '

Я проверил все свои выходные в Google, как использовать 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();
    }
}

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Вы должны иметь возможность передавать опции агрегатора для запрашиваемого.

collection.AsQueryable(new AggregateOptions { AllowDiskUse = true })

Однако, как правило, превышение лимита документа с сортировкой является признаком того, что ваш запрос не оптимален.Вы можете переосмыслить свой дизайн базы данных или запрос, чтобы вам не нужно было сортировать такой большой набор данных.

0 голосов
/ 22 октября 2018

Вам действительно нужно взять все документы коллекции?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...