失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > java 用户留存率_【java】mongodb 数据统计(留存率) 应该怎么实现?

java 用户留存率_【java】mongodb 数据统计(留存率) 应该怎么实现?

时间:2022-05-19 21:48:07

相关推荐

java 用户留存率_【java】mongodb 数据统计(留存率)  应该怎么实现?

在玩家的登陆日志里记录了, 玩家账号, 登陆时间, 注册时间.(当然还有别的秒级时间和玩家信息.)

数据大概是这样的:

{"_id":xxxx,"userName":"zhangsan","loginTime":1月1日,"createTime":1月1日......}

{"_id":xxxx,"userName":"lisiaaaa","loginTime":1月2日,"createTime":1月2日......}

{"_id":xxxx,"userName":"zhangsan","loginTime":1月2日,"createTime":1月1日......}

{"_id":xxxx,"userName":"lisiaaaa","loginTime":1月3日,"createTime":1月2日......}

{"_id":xxxx,"userName":"lisiaaaa","loginTime":1月4日,"createTime":1月2日......}

{"_id":xxxx,"userName":"zhangsan","loginTime":1月4日,"createTime":1月1日......}

{"_id":xxxx,"userName":"zhangsan","loginTime":1月5日,"createTime":1月2日......}

想统计玩家的留存率.是根据某一天玩家的注册量来作为起始点.

比如 1日 新注册了1000个玩家, 第二日这1000个玩家有900个登陆了, 第三日这1000个玩家只登陆了500个… 希望看到的数据是这样的

{"id":1月1日,"data":[{day:1月1日, count:1000},{day:1月2日, online:9000},{day:1月3日, online:500}]}

这是1日的新注册玩家的留存情况. 每天肯定都会有新玩家注册, 我们关注的留存就是当天新注册玩家在以后每天的登陆情况, 所以最终呈现的应该是这个样子..

比如截止到 1月5日 的留存统计结果:

{"id":1月1日,"data":[{day:1月1日, count:1000},{day:1月2日, online:900},{day:1月3日, online:500},{day:1月4日, count:400},{day:1月5日, online:500}]}

{"id":1月2日,"data":[{day:1月2日, count:1200},{day:1月3日, online:900},{day:1月4日, count:600},{day:1月5日, online:300}]}

{"id":1月3日,"data":[{day:1月3日, count:2000},{day:1月4日, count:700},{day:1月5日, online:500}]}

{"id":1月4日,"data":[{day:1月4日, count:500},{day:1月5日, online:200}]}

{"id":1月5日,"data":[{day:1月5日, count:4000}]}

不知道该怎么实现.. 在此求助各位. 跪谢…

回答

这样设计:

{

player: {

id: 123,

name: 'zhangsan',

register_time:

},

login_time:

}

然后aggregate

先按register_time筛选,再按login_time分组

估计你还是不会……

另外,我觉得,不要这么做,计算量大

如果觉得《java 用户留存率_【java】mongodb 数据统计(留存率) 应该怎么实现?》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。