Загружаете ли вы все данные в память одновременно? Если это так, вы можете заставить ОС переставлять память на диск, что может привести к сканированию любой системы. Словари являются хеш-таблицами, так что даже пустой dict будет занимать много памяти, и из того, что вы говорите, вы создаете много из них одновременно. Я не знаю API MongoDB, но я предполагаю, что есть способ перебирать результаты по одному за раз вместо чтения всего набора результатов за раз - попробуйте использовать это. Или перепишите запрос, чтобы получить подмножество данных.
Если замена диска не является проблемой, профилируйте код, чтобы увидеть узкое место, или добавьте пример кода в свой вопрос. Без более конкретной информации сложно дать более конкретный ответ.