Kann nicht allowDiskUse:True, um die Arbeit mit pymongo

Ich in der aggregation result exceeds maximum document size (16MB) - Fehler bei mongodb aggregation mit pymongo.

War ich in der Lage, Sie zu überwinden, bei der ersten Verwendung der limit() option. Aber irgendwann bekam ich die

Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in." error.

Ok, ich verwende das {'allowDiskUse':True} option. Diese option funktioniert, wenn ich es auf der Kommandozeile, aber wenn ich habe versucht, in meinem python-code

result = work1.aggregate(pipe, 'allowDiskUse:true')

Bekomme ich TypeError: aggregate() takes exactly 2 arguments (3 given) Fehler. (das ist trotz der gegebenen definition auf http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.aggregate: Summe(pipeline, **kwargs)).

Ich habe versucht, die runCommand-oder vielmehr es ist pymongo äquivalent:

db.command('aggregate','work1',pipe, {'allowDiskUse':True})

aber jetzt bin ich wieder zu der 'aggregation Ergebnis überschreitet maximale Dokument Größe (16MB)' Fehler

Den Fall, Sie müssen wissen,

pipe = [{'$project': {'_id': 0, 'summary.trigrams': 1}}, {'$unwind': '$summary'}, {'$unwind': '$summary.trigrams'}, {'$group': {'count': {'$sum': 1}, '_id': '$summary.trigrams'}}, {'$sort': {'count': -1}}, {'$limit': 10000}]

Danke

Schreibe einen Kommentar