我遇到了一个问题。我试图查询此文档以获取金额和“COL”数组之外的LOC标识符分组。
{
"_id" : ObjectId("57506d74c469888f0d631be6"),
"LOC" : "User001",
"COL" : [
{
"date" : "25/03/2016",
"number" : "Folio009",
"amount" : 100
},
{
"date" : "25/04/2016",
"number" : "Folio010",
"amount" : 100
}
] }
此命令在mongo中有效,但我无法使它在Python中与Pymongo包一起工作:
db.perfiles.aggregate({"$unwind": "$COL"},
{ "$group": { _id: "$LOC", "sum" : {"$sum" : "$COL.amount" }}})
from pymongo import MongoClient
client = MongoClient()
db = client['temporal']
docs = db.perfiles
pipeline = [{"$unwind": "$COL"},
{"$group": {"_id": "$LOC", "count": {"$sum": "$COL.amount"}}}
]
list(db.docs.aggregate(pipeline))
有什么建议可以在Pymongo中查询同一个查询吗?谢谢!
我假设您在Python中有到MongoDB的有效连接。
以下代码段将在
result.
中返回MongoDB游标现在您可以将
cursor
转换为列表如果您打印结果的值,您将得到与Shell查询中完全相同的结果。
更新:
我看到您正在将python代码中的
aggregate
函数调用为db.docs.aggregate(pipeline)
。 你需要称它为docs.aggregate...
,而不是db
。见上面的例子。相关问题 更多 >
编程相关推荐