MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

MongoDB verarbeitet keine Aggregation mit allowDiskUsage:True

Dies liegt daran, dass in PyMongo v3.6 die Methodensignatur für collection.aggregate() wurde geändert. Ein optionaler Parameter für session wurde hinzugefügt. Die Methodensignatur lautet jetzt:

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

Wenn Sie dies auf Ihr Codebeispiel anwenden, können Sie allowDiskUse angeben wie folgt:

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

Siehe auch pymongo.client_session wenn Sie mehr über session erfahren möchten .