MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB non gestisce l'aggregazione con allowDiskUsage:True

Questo perché in PyMongo v3.6 la firma del metodo per collection.aggregate() è stato cambiato. Un parametro facoltativo per session è stato aggiunto. La firma del metodo ora è:

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

Applicando questo al tuo esempio di codice, puoi specificare allowDiskUse come di seguito:

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

Vedi anche pymongo.client_session se vuoi saperne di più su session .