Le avgObjSize
n'est pas conforme à l'estimation de 280 octets. Il indique que vos objets font en moyenne environ 5 Mo et storageSize
est proche de 1 Go. Si vous êtes limité en mémoire, l'exécution d'une requête qui doit accéder à tous les 1 Go de fichier entraînerait de nombreux défauts de page.
Avez-vous essayé de compacter ?
db.runCommand({compact: 'Aggregates'})
ou réparation ?
db.repairDatabase()
Si cela ne fonctionne pas, essayez de retirer uniquement les champs nécessaires pour la somme plutôt que de retirer le document entier. Il se peut que ces documents pèsent en fait 5 Mo et qu'il faille passer du temps à extraire des données via le réseau.
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