DBAtlas · Атлас эксплуатации баз данных

292: QueryExceededMemoryLimitNoDiskUseAllowed (код ошибки 292)

MongoDB

Что это значит?

Запрос или этап агрегации превысил допустимый лимит памяти (по умолчанию 100 MB) и завершился ошибкой, поскольку запись на диск не разрешена. Обычно наблюдается на этапах сортировки или группировки.

Почему возникает?

Сортировка в памяти по большим неиндексированным данным, крупные этапы агрегации $group/$sort, очень большие промежуточные наборы результатов, настройка allowDiskUse:false.

Как исправить

Разрешите сброс на диск в агрегации с помощью параметра allowDiskUse:true: db.collection.aggregate(pipeline, {allowDiskUse:true}). Сократите использование памяти, проиндексировав сортируемые поля. Фильтруйте конвейер на раннем этапе с помощью $match, чтобы сократить объём обрабатываемых данных. При необходимости разбивайте результаты на страницы. В MongoDB 6.0+ использование диска в большинстве случаев включено по умолчанию.

Открыть в DBAtlas →

Ещё по этой СУБД