sql >> Base de Datos >  >> NoSQL >> MongoDB

MongoDB no maneja la agregación con allowDiskUsage:True

Esto se debe a que en PyMongo v3.6 la firma del método para colección.agregado() ha sido cambiado. Un parámetro opcional para session se ha agregado. La firma del método ahora es:

aggregate(pipeline, session=None, **kwargs)

Aplicando esto a su ejemplo de código, puede especificar allowDiskUse como sigue:

node = db.way.aggregate(pipeline=[
                {'$unwind': '$node'},
                {'$group': {
                          '_id': '$node',
                          'appear_count': {'$sum': 1}
                          }
                 },
                 {'$sort': {'appear_count': -1}},
                 {'$limit': 10}
               ],
               allowDiskUse=True
        )

Consulte también pymongo.client_session si desea saber más sobre session .