MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

MongoDB ne gère pas l'agrégation avec allowDiskUsage:True

En effet, dans PyMongo v3.6, la signature de méthode pour collection.aggregate() a été modifié. Un paramètre facultatif pour session a été ajouté. La signature de la méthode est maintenant :

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

En appliquant cela à votre exemple de code, vous pouvez spécifier allowDiskUse comme ci-dessous :

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

Voir aussi pymongo.client_session si vous souhaitez en savoir plus sur session .