Donc, dans l'ordre :
-
aggregate
est une méthode. Il prend 2 arguments positionnels (self
, qui est passé implicitement, etpipeline
) et n'importe quel nombre de mot clé arguments (qui doivent être passés sous la formefoo=bar
-- s'il n'y a pas de=
signe, ce n'est pas un argument de mot-clé). Cela signifie que vous devez appelerresult = work1.aggregate(pipe, allowDiskUse=True)
. -
Votre erreur sur la taille maximale du document est inhérente à Mongo. Mongo ne peut jamais renvoyer un document (ou un tableau de celui-ci) supérieur à 16 mégaoctets. Je ne peux pas vous dire pourquoi parce que vous ne nous avez donné ni vos données ni votre code, mais cela signifie probablement que le document que vous construisez comme résultat final est trop volumineux. Essayez de diminuer la
$limit
paramètre, peut-être ? Commencez par le régler sur 1, exécutez un test, puis augmentez-le et regardez l'ampleur du résultat lorsque vous faites cela.