De avgObjSize
is niet in lijn met de schatting van 280 bytes. Het zegt dat uw objecten gemiddeld ongeveer 5 MB zijn en storageSize
is bijna 1 GB. Als je geheugen beperkt is, zou het uitvoeren van een query die toegang moet hebben tot alle 1 GB aan bestanden, veel paginafouten veroorzaken.
Heb je compacten geprobeerd ?
db.runCommand({compact: 'Aggregates'})
of repareren ?
db.repairDatabase()
Als dat niet werkt, probeer dan alleen die velden terug te trekken die nodig zijn voor de som in plaats van het hele document te trekken. Het kan zijn dat die documenten in werkelijkheid 5 MB zijn en dat de tijd wordt besteed aan het over de draad trekken van gegevens.
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