avgObjSize
nie zgadza się z oszacowaniem 280 bajtów. Mówi, że twoje obiekty zajmują średnio około 5 MB i storageSize
jest blisko 1 GB. Jeśli masz ograniczoną pamięć, uruchomienie zapytania, które wymaga dostępu do całego 1 GB pliku, spowoduje wiele błędów stron.
Czy próbowałeś kompaktowanie ?
db.runCommand({compact: 'Aggregates'})
lub naprawianie ?
db.repairDatabase()
Jeśli to nie zadziała, spróbuj wycofać tylko te pola, które są potrzebne dla sumy, zamiast ściągać cały dokument. Może się zdarzyć, że te dokumenty mają w rzeczywistości 5 MB, a czas poświęcony jest na przeciąganie danych przez sieć.
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