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

La query aggregata in mongo funziona, non in Pymongo

Presumo che tu abbia una connessione valida a MongoDB in Python.
Il seguente frammento di codice restituirà un cursore MongoDB in result.

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

cursor = collection.aggregate(pipeline)

Ora puoi convertire cursor elencare

result = list(cursor)

e se stampi il valore del risultato, otterrai esattamente lo stesso risultato della query Shell.

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

Aggiorna :

Vedo che stai chiamando l'aggregate funzione nel codice Python come db.docs.aggregate(pipeline) .Devi chiamarlo come docs.aggregate... senza db . Vedi esempio sopra.