Python3.x MongoDB聚合的使用—aggregate

为什么80%的码农都做不了架构师?>>> hot3.png

统计数据库中,id为user_id, 未阅读的消息,按消息类型分类并计算对应总数。

代码片段:

db = self.application.glados_client.message
pipeline = [
    {"$match":  {"user_id": user_id, 'read_time': {'$exists': False}}},
    {"$group": {
        "_id": "$msg_type",
        "count": {"$sum": 1}
    }}
]
cursor = db.user_message.aggregate(pipeline, allowDiskUse=True)

语法:db.collection.aggregate(pipeline, options)

数据库表: db.message.user_message

$match: 匹配的条件(匹配筛选user_id, read_time不存在的记录)

$group:集合规则(_id: 需要分类的字段, count:求和,计算总数)

 

更多用法:

MOngoDB官网(中文):http://docs.mongoing.com/manual-zh/

MOngoDB官网之:

aggregate:https://docs.mongodb.com/manual/reference/method/db.collection.aggregate/

菜鸟教程:http://www.runoob.com/mongodb/mongodb-aggregate.html

转载于:https://my.oschina.net/xxWang/blog/819731

你可能感兴趣的:(Python3.x MongoDB聚合的使用—aggregate)