Выпадение отчёта по ошибке Sort exceeded memory limit
При значительном числе интерфейсов или линков чать отчётов начинают выпадать с ошибкой <class 'pymongo.errors.OperationFailure'> Sort exceeded memory limit of 104857600 bytes, but did not opt in to external sorting. Aborting operation. Pass allowDiskUse:true to opt in.
. Пример:
db.noc.links.aggregate([{"$unwind": "$interfaces"}, {"$lookup": {"foreignField": "_id", "as": "int", "from": "noc.interfaces", "localField": "interfaces"}}, {"$group": {"count": {"$sum": 1}, "_id": "$int.managed_object"}}, {"$sort": {"_id": 1}}])
Появление подобной ошибки является следствием большого числа объектов в коллекции MongoDB Aggregation limit. Также есть описаниеДля исправления возможно:
- Увеличить размер памяти, выделяемой стадиям
aggregate
- Использовать в запросе ключ
allowDiskUse
- Создать дополнительный индекс в коллекции
- Оптимизировать запрос (насколько возможно)