【问题标题】:Not able to append the json data无法附加 json 数据
【发布时间】:2019-04-05 08:58:32
【问题描述】:

我正在尝试执行 mongo 查询和 mysql 查询,结果都验证并返回到变量中。 我的问题是它只返回 mysql 数据。不附加到 mongo db 结果。如果我放置console.log,那么它正在显示,但作为回报它不是。请让我知道以下代码中缺少的地方。

   var message= {'msg':gloabl_vars.messages.success,'mysql':{'msg':'success','data':[]},'mongo':{'msg':'success','data':[]}}; 
var MongoClient = require('mongodb').MongoClient;
      var url=gloabl_vars.mongodb_data.url;  
      MongoClient.connect(url,function(err, db) {
        if(err) throw err;
        var dbo=db.db("profilemanager");       
        dbo.collection('userinfo').find({_id:userdata.msisdn},{'_id':0,'subscriptions':1}).toArray(function(err,result){
          if(err) throw err;
          var dumpdata=result[0].subscriptions;         
          for(var i=0;i<dumpdata.length;i++){
            var dump=JSON.parse(JSON.stringify(dumpdata[i]));     
            console.log(dump.state); console.log(dump.reqChrgCode); 
            console.log(dump.cCode);           
            if(dump.state==1 && dump.reqChrgCode==userdata.code && dump.cCode==userdata.service_code){
              message.mongo.data['mongodb_userinfo']='Mongodb details updated.';
              message.mongo.msg="Success";
              message.msg="Success";
            }
            else{            
              message.mongo.msg="Failed";
              message.msg="Failed";
              message.mongo.data['mongodb_userinfo']='Failed to update data in mongodb.'; 
            }
          }     
        });
      });

    sql.query(db_queries, params, function(
          err,
          results
        ) {
          if (err) {
            console.log("error: ", err);
            result(err, null);
          } else {  
            var success_count=0;
            var running_count=0;
            for(let i=0;i<queries.length;i++){
              var temp=results[i]; 
              if(temp.length > 0){ 
                message.mysql.data[i] = {"info" :queries[i],"msg":"Success"};                    
                success_count++;
                running_count++;
              }
              else {
                message.mysql.data[i] = {"info" :queries[i],"msg":"Failed"};    
                success_count--;
                running_count++;
              }           
              if(success_count==(queries.length-1)) {
                message.mysql.msg="Success";
              } 
              else if(running_count==(queries.length-1)){
                message.msg="Failed";
                message.mysql.msg="Failed";          
              }           
            }
            result(null, message);
          }      
        });

预期输出:

{
    "message": {
        "msg": "Failed",
        "mysql": {
            "msg": "Failed",
            "data": [
                {
                    "info": "SELECT * FROM imidigitaltrans_logs.gw_api_trans_log where gtrid=?;",
                    "msg": "Failed"
                },
            ]
        },
        "mongo": {
            "msg": "success",
            "data": [
                "userinfo":"Updated"
            ]
        }
    }
}

实际:

{
    "message": {
        "msg": "Failed",
        "mysql": {
            "msg": "Failed",
            "data": [
                {
                    "info": "SELECT * FROM imidigitaltrans_logs.gw_api_trans_log where gtrid=?;",
                    "msg": "Failed"
                },
            ]
        },
        "mongo": {
            "msg": "success",
            "data": []
        }
    }
}

提前致谢

【问题讨论】:

    标签: mysql node.js json mongodb


    【解决方案1】:

    您在数组中存储值的方式不正确。

    改变

    message.mongo.data['mongodb_userinfo']='Mongodb details updated.';
    

    message.mongo.data[i] = {'mongodb_userinfo': 'Mongodb details updated.'};
    

    ELSE 条件也是如此。

    【讨论】:

      猜你喜欢
      • 2020-03-26
      • 1970-01-01
      • 1970-01-01
      • 2014-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-22
      • 1970-01-01
      相关资源
      最近更新 更多