Установлен сервер 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") вроде индексы все на местах.
Если кто сталкивался буду благодарен очень за помощь.
@gage Была похожая проблемы и нужно просто передать {allowDiskUse: true} в find() метод, а вообще в таком запросе будет лучше использовать aggregate() так как он возврящает курсор, попробуй ниже запрос - должно сработать:
1
|
db.products.find({ active: 1, deleted: false }, {},{allowDiskUse: true}).sort({'product_id': -1}).limit(25).skip(700) |
@gage
Эта ошибка возникает, когда запрос MongoDB использует слишком много памяти и завершается неудачно. Чтобы решить эту проблему, вы можете добавить опцию allowDiskUse: true
к вашему запросу, чтобы разрешить MongoDB использовать диск для хранения временных данных во время выполнения запроса. Однако, имейте в виду, что использование диска может значительно замедлить выполнение запроса.