MongoDB: Сортировка превысила ограничение памяти 104857600 байт
Выполняет большую операцию сортировки (агрегирование) в коллекции и отображает следующее сообщение об ошибке:
MongoDB Console
> db.bigdata.aggregate( {$group : {_id : "$range", total : { $sum : 1 }}}, {$sort : {total : -1}} ); #... aggregate failed at Error () at doassert (src/mongo/shell/assert.js:11:14) #... Error: command failed: { "errmsg" : "exception: Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.", "code" : 16819, "ok" : 0 }
P.S Tested with MongoDB 3.0.6
Решение
Changed in version 2.6 - Прочтите этоMemory Restrictions
В MongoDB сортировка в памяти имеет ограничение в 100 МБ, для выполнения большой сортировки вам нужно включить параметрallowDiskUse
для записи данных во временные файлы для сортировки.
Чтобы исправить это, включите опциюallowDiskUse
в вашем запросе:
db.bigdata.aggregate( [ {$group : {_id : "$range", total : { $sum : 1 }}}, {$sort : {total : -1}} ], {allowDiskUse: true} );