mongodb javascript脚本案例
2015-11-19 11:11
691 查看
mongodb js脚本
实例
统计用户
更新数据库
多表统计
实例
统计用户
更新数据库
多表统计
mongodb js脚本
实例
统计用户
//链接数据库 var mapmonitor = connect("mapmonitor"); var mappushdb = connect("mappush"); var userMonthLogin = mapmonitor.runCommand({distinct:'loginMonitor',key:'user_name',query:{"appKey":"fb27d257e0d464d63d200d9e7c2ded2a","result":"true","monitor_date":{"$gte":new Date(Date.parse(new Date()) - 86400000 * 30)}}}); var arr = userMonthLogin.values; for(var i=0 ; i< arr.length; i++){ var name = arr[i]; var userlist = mappushdb.imMessageUser.find({"username":name}); if(userlist.hasNext()){ }else{ mappushdb.imMessageUser.save({"username":name,"createTime":new Date(),"updateTime":new Date(),"state":"0"}); } }
更新数据库
//链接数据库 var mappushdb = connect("mappush"); var imPushRequestList = mappushdb.imPushRequest.find({"state":"sent","retry_time":{"$lt":new Date(),"$gte":new Date(Date.parse(new Date()) - 86400000 * 2)}}); while(imPushRequestList.hasNext()){ var temp = imPushRequestList.next(); var messageList = mappushdb.imMessage.find({"msgId" : temp.msgId}); //print (message.next()); if(messageList.hasNext()){ var messagetemp = messageList.next() var name = messagetemp.to; var userList = mappushdb.imMessageUser.find({"username":name}); if(messageList.hasNext()){ }else{ print("no:"+temp.msgId); mappushdb.imPushRequest.update({"_id":temp._id},{$set:{"state":"failed"}}); break; } } }
多表统计
var mideadb = connect("midea"); //找到所有模块的类型 var categoryList = mideadb.settingCategory.find({"type":"2"},{"_id":1,"name":1}); while(categoryList.hasNext()){ var categorytemp = categoryList.next(); var categoryId = categorytemp._id.str; var categoryName = categorytemp.name; //print(categorytemp._id.str); var widgetList = mideadb.widget.find({"category_id":categoryId}); //print(widgetList.hasNext()); while(widgetList.hasNext()){ var widgettemp = widgetList.next(); var widgetId = widgettemp._id.str; var widgetName = widgettemp.name; var widgetIdentify = widgettemp.identify; var widgetVersionList = mideadb.widgetVersion.find({"widget_id":widgetId}); while(widgetVersionList.hasNext()){ var widgetVersionTemp = widgetVersionList.next(); var widgetVersionId = widgetVersionTemp._id.str; var appVersionList = mideadb.appVersionWidgetVersion.find({"widgetVersionId":widgetVersionId}); var appVersionLinkResult=""; while(appVersionList.hasNext()){ var appVersionTemp = appVersionList.next(); var appVersionId = appVersionTemp.appId; var appList = mideadb.appMain.find({"_id":ObjectId(appVersionId)}); //查找应用的名称 var appname = ''; if(appList.hasNext()){ var apptemp = appList.next(); appname = apptemp.app_name; } //拼接字符串 appVersionLinkResult += appname+"-"+appVersionTemp.appVersion+"-"+appVersionTemp.platform; appVersionLinkResult += ";"; } //输出结果 print(categoryName+","+widgetName+","+widgetIdentify+","+widgetVersionTemp.version+","+appVersionLinkResult); } //break; } //break; }
相关文章推荐
- JQuery1——基础($对象,选择器,对象转换)
- 分享微信开发Html5轻游戏中的几个坑
- Android学习笔记(二九):嵌入浏览器
- Android java 与 javascript互访(相互调用)的方法例子
- 如何在 Fedora 上安装 MongoDB 服务器
- JavaScript演示排序算法
- PHP添加yaf xhprof mongodb 同理
- mongodb安装
- javascript实现10进制转为N进制数
- 如何在 Ubuntu 上安装 MongoDB
- Shell 脚本编程陷阱
- 2019年开发人员应该学习的8个JavaScript框架
- HTML中的script标签研究
- 对一个分号引发的错误研究
- 异步流程控制:7 行代码学会 co 模块
- ES6 走马观花(ECMAScript2015 新特性)
- JavaScript拆分字符串时产生空字符的原因
- Canvas 在高清屏下绘制图片变模糊的解决方法