Dus, in volgorde:
-
aggregate
is een methode. Er zijn 2 positionele argumenten nodig (self
, die impliciet wordt doorgegeven, enpipeline
) en een willekeurig aantal zoekwoorden argumenten (die moeten worden doorgegeven alsfoo=bar
-- als er geen=
. is teken, het is geen trefwoordargument). Dit betekent dat uresult = work1.aggregate(pipe, allowDiskUse=True)
moet aanroepen . -
Uw fout over de maximale documentgrootte is inherent aan Mongo. Mongo kan nooit een document (of array daarvan) groter dan 16 megabyte retourneren. Ik kan je niet vertellen waarom, omdat je ons noch je gegevens noch je code hebt gegeven, maar het betekent waarschijnlijk dat het document dat je aan het maken bent als eindresultaat te groot is. Probeer de
$limit
. te verlagen parameter misschien? Begin door het in te stellen op 1, voer een test uit, verhoog het dan en kijk hoe groot het resultaat wordt als je dat doet.