MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB não lida com agregação com allowDiskUsage:True


Isso ocorre porque no PyMongo v3.6 a assinatura do método para collection.aggregate() foi mudado. Um parâmetro opcional para session foi adicionado. A assinatura do método agora é:
aggregate(pipeline, session=None, **kwargs)

Aplicando isso ao seu exemplo de código, você pode especificar allowDiskUse como abaixo:
node = db.way.aggregate(pipeline=[
                {'$unwind': '$node'},
                {'$group': {
                          '_id': '$node',
                          'appear_count': {'$sum': 1}
                          }
                 },
                 {'$sort': {'appear_count': -1}},
                 {'$limit': 10}
               ],
               allowDiskUse=True
        )

Consulte também pymongo.client_session se você quiser saber mais sobre session .