FlaskMongoEngine&PyMongo聚合查询

2024-04-30 00:32:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用flask mongoengine进行聚合查询,从我所读到的内容来看,这听起来不太可能。

我查看了几个论坛线程、电子邮件链和一些关于堆栈溢出的问题,但还没有找到一个如何使用flask mongoengine实现聚合的好例子。

this question中有一条评论说,您必须使用“raw 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 }

Tags: 框架id应用程序flask示例mongocount例子