怎么从mongodb中按照日期导出用户数据
来源:互联网 发布:驱蚊软件下载 编辑:程序博客网 时间:2024/06/05 04:57
之所以写这篇文章,是因为之前工作中遇到一个问题,现在把相关场景简单描述一下:
我们是一个客户端APP软件,具有注册和完善用户资料功能,每次有新用户注册时我们会保存这个新用户,一段时间过后,运营人员需要统计每天都有多少人注册了,又有多少人填写了用户资料信息等等,这时候就需要我们从后台数据库进行查询了。
其实,刚开始想到的是写个命令,到现网库上执行一下就行了(之前需要统计的天数比较少,第一次统计的时候也就只需要统计几天的数据),但是后来发现运营人员需要统计几个月的数据,这时候如果还按照一条命令一条命令的方式手动执行明显效率太低。因此想了个办法,简单编写了一个脚本。
(备注:这里需要的数据,是按照天为维度进行统计的,每天需要统计多个数据,并且将这些数据以报表的形式导出)
下面是statistics.js脚本内容:
conn = new Mongo("192.168.1.200:27017");//填写现网mongodb的服务器地址mongo 192.168.1.200:27017/test -u user -p password ****.jsdb =conn.getDB("account");for(var i=0;i<4;i++){for(var j=1;j<31;j++){var start = new Date(2017,i,j);var end = new Date(2017,i,j+1);var currentdatecount = db.AccountInfo.count({"ct":{"$gte":start,"$lt":end}});var currentdatevoicecount = db.AccountInfo.count({"voice":"1","vct":{"$gte":start,"$lt":end}});var currentdateinfocount = db.AccountInfo.count({"firstinfots":{$ne:null},"ct":{"$gte":start,"$lt":end}});db.accountinfostatistic.insert({"currentdate":start,"currentdatecount":currentdatecount,"currentdatevoicecount":currentdatevoicecount,"currentdateinfocount":currentdateinfocount})if((i==0&&j==30)||(i==1&&j==27)||(i==2&&j==30)||(i==3&&j==29)){var start = new Date(2017,i,j+1);var end = new Date(2017,i+1,1);var currentdatecount = db.AccountInfo.count({"ct":{"$gte":start,"$lt":end}});var currentdatevoicecount = db.AccountInfo.count({"voice":"1","vct":{"$gte":start,"$lt":end}});var currentdateinfocount = db.AccountInfo.count({"firstinfots":{$ne:null},"ct":{"$gte":start,"$lt":end}});db.accountinfostatistic.insert({"currentdate":start,"currentdatecount":currentdatecount,"currentdatevoicecount":currentdatevoicecount,"currentdateinfocount":currentdateinfocount})break;}}}
上面的脚本统计了2017年1月1日到4月30日的统计数据,从实现上看,我先把需要统计的数据通过命令依次查询出来,然后将这些数据和当前日期进行绑定,作为一条记录保存到一个临时集合accountinfostatistic中,如下所示:
紧接着,我们需要做的就是将accountinfostatistic集合里面的数据导出,按照我们平时工作的需要,一般报表都是以excel形式提供,这时候我们就可以将accountinfostatistic集合数据导出成csv格式,然后使用excel打开即可。具体导出数据的命令如下
mongoexport --host *** --port *** -d account -c accountinfostatistic --csv -f currentdate,currentdatecount,currentdatevoicecount,currentdateinfocount -o /data/accountinfostatistic.csv
于是我们就可以得到下面的统计报表数据: 0 0
- 怎么从mongodb中按照日期导出用户数据
- 从mongoDB导出数据
- 远程从Mongodb 数据库中 导出数据为Excel 文件
- 按照Json格式读取Mongodb中数据
- MongoDB日志按照日期生成
- 从Acitive+Directory里面导出用户数据
- C#中怎么从如何将DataGridView中的数据导出到Excel中
- 怎么从Mysql中导出Excel表格
- 从数据库中导出数据
- 从数据库中导出数据
- MongoDB 日期查询与mongodump 按日期范围导出数据
- Jsp中怎么把数据从数据库导出在页面直接生成html格式??
- 将HDFS数据导出到MongoDB中
- mysqldump按照条件导出数据
- mysql 按照条件导出数据
- 【技术支持】开发人员从客户数据库环境中导出数据用户测试的几种方法途径
- 从Excel导出数据到MongoDB的实践
- 远程从Mongodb 数据库导出数据为json文件
- PhpStorm (强大的PHP开发环境)2017.1.2 附注册方法
- leetcode--121. Best Time to Buy and Sell Stock
- 最好听的 23 个英文播客
- ldconfig命令的作用
- python3+PyQt5 使用数据库表视图
- 怎么从mongodb中按照日期导出用户数据
- 关于机器学习应用的资料整理
- Android--推送机制实现原理(一)
- 上传文件
- Keyless SSL: The Nitty Gritty Technical Details
- 多态之虚表剖析2
- HttpPostTest 接口获取 重定向
- vim重新编译生成支持lua
- Xposed也要热更新