A więc w kolejności:
-
aggregate
jest metodą. Zajmuje 2 argumenty pozycyjne (self
, który jest przekazywany niejawnie, orazpipeline
) i dowolną liczbę słowa kluczowego argumenty (które muszą być przekazane jakofoo=bar
-- jeśli nie ma=
znak, to nie jest argument słowa kluczowego). Oznacza to, że musisz wywołaćresult = work1.aggregate(pipe, allowDiskUse=True)
. -
Twój błąd dotyczący maksymalnego rozmiaru dokumentu jest nieodłączny od Mongo. Mongo nigdy nie może zwrócić dokumentu (lub jego tablicy) większego niż 16 megabajtów. Nie mogę ci powiedzieć dlaczego, ponieważ nie podałeś nam ani swoich danych, ani kodu, ale prawdopodobnie oznacza to, że dokument, który tworzysz jako wynik końcowy, jest zbyt duży. Spróbuj zmniejszyć
$limit
może parametr? Zacznij od ustawienia go na 1, uruchom test, a następnie zwiększ go i zobacz, jak duży będzie wynik, gdy to zrobisz.