Die avgObjSize
nicht mit der 280-Byte-Schätzung übereinstimmt. Es besagt, dass Ihre Objekte im Durchschnitt etwa 5 MB groß und storageSize
sind ist in der Nähe von 1 GB. Wenn Ihr Arbeitsspeicher begrenzt ist, würde das Ausführen einer Abfrage, die auf alle 1 GB der Datei zugreifen muss, viele Seitenfehler verursachen.
Haben Sie versucht, zu komprimieren ?
db.runCommand({compact: 'Aggregates'})
oder reparieren ?
db.repairDatabase()
Wenn das nicht funktioniert, versuchen Sie, nur die Felder zurückzuziehen, die für die Summe benötigt werden, anstatt das gesamte Dokument zu ziehen. Es kann sein, dass diese Dokumente tatsächlich 5 MB groß sind und die Zeit damit verbracht wird, Daten über die Leitung zu ziehen.
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