MongoDB запрос выдает ошибку Aborting operation. Pass allowDiskUse:true to opt in

Пользователь

от gage , в категории: Другие , 2 года назад

Установлен сервер MongoDB и я пытаюсь сделать пагинацию и данных около 200k (сервер не мощный сразу говорю) и после выполнения запроса вижу ошибку "Aborting operation. Pass allowDiskUse:true to opt in" кто нибудь знает как исправить?


Запрос довольно таки простой:

1
db.products.find({ active: 1, deleted: false }).sort({'product_id': -1}).limit(25).skip(700)


Пробовал также запусть с .explain("executionStats") вроде индексы все на местах.

Если кто сталкивался буду благодарен очень за помощь.

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от guillermo , 2 года назад

@gage Была похожая проблемы и нужно просто передать {allowDiskUse: true} в find() метод, а вообще в таком запросе будет лучше использовать aggregate() так как он возврящает курсор, попробуй ниже запрос - должно сработать:


1
db.products.find({ active: 1, deleted: false }, {},{allowDiskUse: true}).sort({'product_id': -1}).limit(25).skip(700)

Пользователь

от ottilie.farrell , 2 года назад

@gage 

Эта ошибка возникает, когда запрос MongoDB использует слишком много памяти и завершается неудачно. Чтобы решить эту проблему, вы можете добавить опцию allowDiskUse: true к вашему запросу, чтобы разрешить MongoDB использовать диск для хранения временных данных во время выполнения запроса. Однако, имейте в виду, что использование диска может значительно замедлить выполнение запроса.