首先,用户注册的日志是在一个集合(userRegister)里,用户登录的日志是在另一个集合(playerLogin)里.集合里面都有玩家的账号userName.怎么去统计,某一天注册的人,有多少人在第二天登陆过,有多少人在第三天登陆过,依次...这个统计应该是每一天凌晨过后,开始这样,每一天的去统计...可我不知道怎么去实现,求大神指导.
2 回答
慕标5832272
TA贡献1966条经验 获得超4个赞
方案1:在playerLogin表,加上每一个User对应的注册时间。然后用mapReduce统计。方案2:使用Python或其他语言的驱动读出两个表的数据,然后统计。其中方案1的统计代码可以是:varmapFunc=function(){varmilliSeconds=this.loginDate-this.registerDate//相减就是时间差(毫秒)varday=Math.floor(milliSeconds/1000)//如果00:00而不是24小时后算第二天的话,需要另外的公式emit(day,this.username);};varreduceFunc=function(keys,values){returnvalues.filter(function(value,index,self){returnself.indexOf(value)===index;}).length//返回不同用户名的个数};然后就可以用db.playerLogin.mapReduce(mapFunc,reduceFunc,{out:"map_reduce_output"})进行统计,其中map_reduce_output是输出结果的集合名称。
婷婷同学_
TA贡献1844条经验 获得超8个赞
在userRegister表里找到用户的注册日期,然后根据userName和登录日期(注册日期+1,+2...)2个字段去playerLogin里面找有没有存在这个cursor
添加回答
举报
0/150
提交
取消