为了账号安全,请及时绑定邮箱和手机立即绑定

mongodb 数据统计(留存率) 应该怎么实现?

mongodb 数据统计(留存率) 应该怎么实现?

偶然的你 2019-03-30 11:37:59
在玩家的登陆日志里记录了,玩家账号,登陆时间,注册时间.(当然还有别的秒级时间和玩家信息.)数据大概是这样的:{"_id":xxxx,"userName":"zhangsan","loginTime":2015年1月1日,"createTime":2015年1月1日......}{"_id":xxxx,"userName":"lisiaaaa","loginTime":2015年1月2日,"createTime":2015年1月2日......}{"_id":xxxx,"userName":"zhangsan","loginTime":2015年1月2日,"createTime":2015年1月1日......}{"_id":xxxx,"userName":"lisiaaaa","loginTime":2015年1月3日,"createTime":2015年1月2日......}{"_id":xxxx,"userName":"lisiaaaa","loginTime":2015年1月4日,"createTime":2015年1月2日......}{"_id":xxxx,"userName":"zhangsan","loginTime":2015年1月4日,"createTime":2015年1月1日......}{"_id":xxxx,"userName":"zhangsan","loginTime":2015年1月5日,"createTime":2015年1月2日......}想统计玩家的留存率.是根据某一天玩家的注册量来作为起始点.比如1日新注册了1000个玩家,第二日这1000个玩家有900个登陆了,第三日这1000个玩家只登陆了500个...希望看到的数据是这样的{"id":2015年1月1日,"data":[{day:2015年1月1日,count:1000},{day:2015年1月2日,online:9000},{day:2015年1月3日,online:500}]}这是1日的新注册玩家的留存情况.每天肯定都会有新玩家注册,我们关注的留存就是当天新注册玩家在以后每天的登陆情况,所以最终呈现的应该是这个样子..比如截止到2015年1月5日的留存统计结果:{"id":2015年1月1日,"data":[{day:2015年1月1日,count:1000},{day:2015年1月2日,online:900},{day:2015年1月3日,online:500},{day:2015年1月4日,count:400},{day:2015年1月5日,online:500}]}{"id":2015年1月2日,"data":[{day:2015年1月2日,count:1200},{day:2015年1月3日,online:900},{day:2015年1月4日,count:600},{day:2015年1月5日,online:300}]}{"id":2015年1月3日,"data":[{day:2015年1月3日,count:2000},{day:2015年1月4日,count:700},{day:2015年1月5日,online:500}]}{"id":2015年1月4日,"data":[{day:2015年1月4日,count:500},{day:2015年1月5日,online:200}]}{"id":2015年1月5日,"data":[{day:2015年1月5日,count:4000}]}不知道该怎么实现..在此求助各位.跪谢...
查看完整描述

2 回答

?
白衣染霜花

TA贡献1796条经验 获得超10个赞

这样设计:
{
player:{
id:123,
name:'zhangsan',
register_time:
},
login_time:
}
然后aggregate
先按register_time筛选,再按login_time分组
估计你还是不会……
另外,我觉得,不要这么做,计算量大
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 879 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号