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

La requête agrégée dans mongo fonctionne, pas dans Pymongo

Je suppose que vous avez une connexion valide à MongoDB en Python.
L'extrait de code suivant renverra un curseur MongoDB dans result.

pipeline = [
    {"$unwind": "$COL"},
    {"$group": {"_id": "$LOC", "sum": {"$sum": "$COL.amount"}}}
]

cursor = collection.aggregate(pipeline)

Vous pouvez maintenant convertir cursor lister

result = list(cursor)

et si vous imprimez la valeur du résultat, vous obtiendrez exactement le même résultat que dans votre requête Shell.

[{u'sum': 200.0, u'_id': u'User001'}]

Mettre à jour :

Je vois que vous appelez l'aggregate fonction dans le code python comme db.docs.aggregate(pipeline) .Vous devez l'appeler comme docs.aggregate... sans db . Voir l'exemple ci-dessus.