Então, na ordem:
-
aggregate
é um método. Leva 2 argumentos posicionais (self
, que é passado implicitamente, epipeline
) e qualquer número de palavra-chave argumentos (que devem ser passados comofoo=bar
-- se não houver=
sign, não é um argumento de palavra-chave). Isso significa que você precisa chamarresult = work1.aggregate(pipe, allowDiskUse=True)
.
-
Seu erro sobre o tamanho máximo do documento é inerente ao Mongo. O Mongo nunca pode retornar um documento (ou matriz dele) maior que 16 megabytes. Não posso dizer por que, porque você não nos forneceu nem seus dados nem seu código, mas provavelmente significa que o documento que você está criando como resultado final é muito grande. Tente diminuir o$limit
parâmetro, talvez? Comece definindo-o como 1, execute um teste, aumente-o e veja o tamanho do resultado quando você faz isso.