为什么80%的码农都做不了架构师?>>>
统计数据库中,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