mongodb javascript脚本案例

原创 2015年11月19日 11:11:49

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;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MongoDB自动备份脚本

  • 2017年06月03日 23:35
  • 887B
  • 下载

故障案例--mongodb副本集write concern为majority的一个坑

故障现象: 一个副本集下四个节点,一个primary,两个Secondary,一个arbiter,其中将一个Secondary关闭后,修改primary节点的密码,这时修改命令会卡住直到超时失败。 u...

6.1 Hadoop MongoDB案例

实现功能:从MongoDB中读取日志数据,将MapReduce程序处理过的数据写出到MongoDB中。 一、MongoDB 安装(Windows)1、安装Mongodb 运行mongodb-win3...

java 获取nodejs端Gson数据案例(请求MongoDB)

java  获取nodejs端Gson数据案例 原理:这是一个demo,主要通过java向nodejs端发送请求,nodejs端向mongodb请求数据,并将请求的数据以Gson的格式返回给java...

mongodb的group详细成功案例

/** * 查询财务报表 * @author liupeng * @param timeStart * @param timeEnd * @return */ //publi...

深度剖析Byteart Retail案例【基于MongoDB的仓储实现】

今天花了半天时间,向Byteart Retail案例加入了基于MongoDB的仓储实现,读者朋友可以直接从Byteart Retail的代码库克隆最新代码来使用基于MongoDB的仓储实现。 ...

Spring+SpringMVC+MongoDB案例

MongoDB是一个NoSql数据库,MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数...
  • sdksdk0
  • sdksdk0
  • 2017年03月22日 21:35
  • 1707

java操作mongodb案例分析(含代码)

java操作mongodb案例分析(含代码): 1、mongodb安装:
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:mongodb javascript脚本案例
举报原因:
原因补充:

(最多只允许输入30个字)