avgObjSize
не отговаря на оценката за 280 байта. Казва, че вашите обекти са средно около 5MB и storageSize
е близо 1GB. Ако имате ограничена памет, изпълнението на заявка, която трябва да получи достъп до всичките 1 GB файл, ще доведе до много грешки в страницата.
Опитвали ли сте компактиране ?
db.runCommand({compact: 'Aggregates'})
или поправяне ?
db.repairDatabase()
Ако това не работи, опитайте да изтеглите обратно само тези полета, необходими за сумата, вместо да изтеглите целия документ. Може да се окаже, че тези документи всъщност са 5MB и времето се изразходва за изтегляне на данни по кабела.
def get_total():
start = datetime.now()
print sum([x['daily_total_pages'] for x in c.Aggregates.find({}, {"daily_total_pages": 1})])
end = datetime.now()
print (end-start).seconds