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

Die aggregierte Abfrage in Mongo funktioniert, nicht in Pymongo

Ich gehe davon aus, dass Sie in Python eine gültige Verbindung zu MongoDB haben.
Das folgende Code-Snippet gibt einen MongoDB-Cursor in result. zurück

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

cursor = collection.aggregate(pipeline)

Jetzt können Sie cursor umwandeln aufzulisten

result = list(cursor)

und wenn Sie den Ergebniswert drucken, erhalten Sie genau das gleiche Ergebnis wie in Ihrer Shell-Abfrage.

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

Aktualisieren :

Ich sehe, dass Sie das aggregate aufrufen Funktion im Python-Code als db.docs.aggregate(pipeline) . Sie müssen es als docs.aggregate... aufrufen ohne db . Siehe Beispiel oben.