我正在尝试使用flask-mongoengine 进行聚合查询,从我读过的内容来看,这听起来不太可能。
我查看了几个论坛主题、电子邮件链和一些关于 Stack Overflow 的问题,但我还没有找到一个很好的例子来说明如何使用 flask-mongoengine 实现聚合。
这个问题中有一条评论说您必须使用“原始 pymongo 和聚合功能”。但是,没有例子说明它是如何工作的。我已经修改了 Python 并使用 Flask 框架构建了一个基本应用程序,但是深入研究完整的应用程序并连接/查询到 Mongo 对我来说是相当新的。
有人可以提供一个示例(或指向示例的链接),说明我如何利用我的 flask-mongoengine 模型,但使用 PyMongo 的聚合框架进行查询?这是否需要两个到 MongoDB 的连接(一个用于 PyMongo 执行聚合查询,另一个用于通过 MongoEngine 进行常规查询/插入/更新)?
我想要执行的聚合查询的示例如下(这个查询让我得到了我在 Mongo shell 中想要的信息):
db.entry.aggregate([
{ '$group' :
{ '_id' : { 'carrier' : '$carrierA', 'category' : '$category' },
'count' : { '$sum' : 1 }
}
}
])
此查询的输出示例:
{ "_id" : { "carrier" : "Carrier 1", "category" : "XYZ" }, "count" : 2 }
{ "_id" : { "carrier" : "Carrier 1", "category" : "ABC" }, "count" : 4 }
{ "_id" : { "carrier" : "Carrier 2", "category" : "XYZ" }, "count" : 31 }
{ "_id" : { "carrier" : "Carrier 2", "category" : "ABC" }, "count" : 6 }