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

在玩家的登陆日志里记录了,玩家账号,登陆时间,注册时间.(当然还有别的秒级时间和玩家信息.)
数据大概是这样的:
{"_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}]}
不知道该怎么实现..在此求助各位.跪谢...
偶然的你
浏览 880回答 2
2回答

白衣染霜花

这样设计:{player:{id:123,name:'zhangsan',register_time:},login_time:}然后aggregate先按register_time筛选,再按login_time分组估计你还是不会……另外,我觉得,不要这么做,计算量大
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript