292: QueryExceededMemoryLimitNoDiskUseAllowed (код ошибки 292)
MongoDBЧто это значит?
Запрос или этап агрегации превысил допустимый лимит памяти (по умолчанию 100 MB) и завершился ошибкой, поскольку запись на диск не разрешена. Обычно наблюдается на этапах сортировки или группировки.
Почему возникает?
Сортировка в памяти по большим неиндексированным данным, крупные этапы агрегации $group/$sort, очень большие промежуточные наборы результатов, настройка allowDiskUse:false.
Как исправить
Разрешите сброс на диск в агрегации с помощью параметра allowDiskUse:true: db.collection.aggregate(pipeline, {allowDiskUse:true}). Сократите использование памяти, проиндексировав сортируемые поля. Фильтруйте конвейер на раннем этапе с помощью $match, чтобы сократить объём обрабатываемых данных. При необходимости разбивайте результаты на страницы. В MongoDB 6.0+ использование диска в большинстве случаев включено по умолчанию.