Python3.x MongoDB聚合的使用—aggregate

本文介绍了一种使用MongoDB聚合管道来统计特定用户未阅读消息总数的方法。通过$match和$group阶段,可以针对不同消息类型计算未读消息的数量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

统计数据库中,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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值