mongodb中聚类中常用的操作:
一,聚合操作中的分组:
$group,按照给定表达式组合结果
db.collection.aggregate([array]);
array 可以是任何一个或者多个操作符.
db.daily_ad_composite.aggregate([{$group:{_id:"$appid",totalViews:{$sum:"$views"}}}])
二,聚合操作中的过滤
$match,查询,需要同find()一样的参数.
db.daily_ad_composite.aggregate([{"$match":{"date":"2017-11-27"}},{$group:{_id:"$appid",totalViews:{$sum:"$views"},clicks:{$sum:"$clicks"}}}])
三,聚合操作中的其他方法
$limit,限制结果数量
$skip,忽略结果的数量
$sort,按照给定的字段进行排序
db.daily_ad_composite.aggregate([{"$match":{"date":"2017-11-27"}},
{$group:{_id:"$appid",totalViews:{$sum:"$views"},clicks:{$sum:"$clicks"}}},
{"$limit":50},
{"$sort":{"date":-1}},
{"$skip":5},
{"$project":{"completions":1}}
])
五,聚合操作中映射
$project 包含,排除,重名令和显示字段,结果就是只有
下面的例子中会显示appid,date,impression_users,clicks这些字段,相当于sql表达式 select appid,date,impression_users,clicks from daily_ad_composite;
db.daily_ad_composite.aggregate([{$project:{appid:1,date:1,impression_users:1,clicks:1}}])
四,一个常用的find操作
查找date在[“2015-11-01”,”2017-11-26”] 中的命令
db.getCollection('daily_ad_composite').find({"date":{"$gte":"2015-11-01"},"date":{"$lte":"2017-11-26"}})