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

来源:互联网 发布:风云无双斗篷进阶数据 编辑:程序博客网 时间:2024/05/01 22:19

一、付费

生命月收入从线上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


0 0
原创粉丝点击