首页 > 其他 > 详细

数据统计相关的常用mongo语句

时间:2014-03-03 16:36:54      阅读:549      评论:0      收藏:0      [点我收藏+]

bubuko.com,布布扣

一、付费

生命月收入从线上mongo服务器的newer_pay库中查询(每月更新)。
自然月收入从线上mongo服务器newer_pay_birthmonthly库中查询(每月更新)。

1、某个月某个游戏从某个渠道来的新用户在这个月的付费总额。
例如:街机三国11月份从360玩平台来的新用户在这个月的付费总额

指令:db.birthmonthly_gamely_detail.aggregate([{$match:{gkey:"jjsg", src:/^360wan-/i, pay_birthmonth:11, newer_birthmonth:11}},{$group:{_id:null, sum:{"$sum":"$payed_sum"}}}])

结果:{ "result" : [ { "_id" : null, "sum" : ***** } ], "ok" : 1 }

2、某个月某个游戏某个渠道的付费总额
例如:街机三国11月份从360玩平台来的用户在这个月的付费总额

指令:db.birthmonthly_gamely_detail.aggregate([{$match:{pay_birthmonth:10, src:/^360wan-/i, gkey:"jjsg"}},{$group:{_id:null, payed_sum:{‘$sum‘:‘$payed_sum‘}}}])

结果:{"result" :  [ {"_id" : null, "payed_sum" : ****** }], "ok" : 1 }

3、某个月某个游戏某个渠道的累计付费总额
例如:街机三国从360玩平台来的用户到11月为止的累计付费总额

指令:db.birthmonthly_gamely_detail.aggregate([{$match:{ src:/^360wan-/i, gkey:"jjsg", "$pay_birthmonth":{"$lte":10}}},{$group:{_id: null, payed_sum:{‘$sum‘:‘$payed_sum‘}}}])

结果:{"result" :  [ {"_id" : null, "payed_sum" : ******* }], "ok" : 1 }指令:db.birthmonthly_gamely_detail.aggregate([{$match:{ src:/^360wan-/i, gkey:"jjsg", "$pay_birthmonth":{"$lte":10}}},{$group:{_id: null, payed_sum:{‘$sum‘:‘$payed_sum‘}}}])

结果:{"result" :  [ {"_id" : null, "payed_sum" : ******* }], "ok" : 1 }
4、全年各个月某个游戏某个渠道的付费总额

例如:街机三国在2013年从360玩平台来的用户在各个月的付费总额,并按月份排序。

指令:db.birthmonthly_gamely_detail.aggregate([{$match:{ src:/^360wan-/i, gkey:"jjsg"}},{$group:{_id: "$pay_birthmonth", payed_sum:{‘$sum‘:‘$payed_sum‘}}},{$sort:{_id:-1}}])

结果:{"result" : [ {"_id" : 12,  "payed_sum" : ***** }, {"_id" : 11,	"payed_sum" : ******* }, {"_id" : 10, "payed_sum" : ********}.....}

二、新用户

自然月/生命月新用户从线上mongo服务器的glogin库中查询(每日更新)
例如:街机三国在2013年所有的新用户。

指令:db.statisticalGkeySrc.aggregate([{$match:{gkey:"jjsg",date:{"$gte":1356969600,"$lt":(1356969600+30*12*86400)}}},{$group:{_id: null, login_num:{‘$sum‘:‘$newPlayer‘}}}])

结果:{"result" : [ {"_id" : null, "login_num" : ******* }], "ok" : 1}

三、复杂查询

1、查询某个游戏全年累计新用户前5位的渠道(剔除cl,loginhistory渠道)。

$match = array(‘$match‘=>array(‘gkey‘=>$gkey, ‘qd‘=>array(‘$nin‘=>array(‘cl‘,‘loginhistory‘))));
$group = array(‘$group‘=>array(‘_id‘=>‘$qd‘, ‘add_newer‘=>array(‘$sum‘=>‘$add_newer‘)));
$sort  = array(‘$sort‘=>array(‘add_newer‘=>-1));
$limit = array(‘$limit‘=>self::TOPNUM);
$vals  = $this->coll_roi_birth_month->aggregate($match, $group, $sort, $limit);

2、查询某个游戏某个渠道各个月的新用户当月付费总额(注册的月份-付费的月份为0)

$project = array(‘$project‘=>array(‘_id‘=>0, ‘payed_sum‘=>1, ‘gkey‘=>1, ‘qd‘=>1, ‘pay_birthmonth‘=>1, ‘newer_birthmonth‘=>1, ‘addFlag‘=>array(‘$subtract‘=>array(‘$pay_birthmonth‘, ‘$newer_birthmonth‘))));
$match   = array(‘$match‘=>array(‘addFlag‘=>0));
$group   = array(‘$group‘=>array(‘_id‘=>array(‘qd‘=>‘$qd‘,‘gkey‘=>‘$gkey‘,‘month‘=>‘$pay_birthmonth‘), ‘addNewer_income‘=>array(‘$sum‘=>‘$payed_sum‘)));
$vals    = $this->coll_qd->aggregate($project,$match,$group);

四、数据库导出与导入

1、将数据库中某个表导出成excel

/usr/local/mongodb/bin/mongoexport -h 127.0.0.1:8900 -d october -c platformCompose -f _id,newer,firstTime --csv -o platformCompose.csv

2、导入数据到数据库中

/usr/local/mongodb/bin/mongoimport -h 127.0.0.1:8900 -d october  -c platformCompose  --file platformCompose


数据统计相关的常用mongo语句,布布扣,bubuko.com

数据统计相关的常用mongo语句

原文:http://blog.csdn.net/loloxiaoz3/article/details/20299989

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!