并行发送多个请求

时间:2018-01-16 10:09:22

标签: javascript node.js mongodb express ecmascript-6

我必须在两个数据库(Mongo和Oracle)之间建立一个桥(脚本)。

我在三个不同的集合中对我的MONGO数据库运行三个查找查询。

{% if error %}
    <div>{{ error.messageKey|trans(error.messageData, 'security') }}</div>
{% endif %}

我从每个集合中检索文档列表,我在此列表中进行处理(例如:平均值)。

 Collection 1 = [{
  name: 'Toto',
  from: 'Momo',
  note: 5,
  cat: 'noCategori'
 }]

 Collection 2 = [{
  city: 'london',
  country: 'UK'
 }]
 ...etc

我与Oracle建立了连接,我坚持这一行。

我想和mongo一起运行查询。在三个请求和治疗结束时。我撰写录音并将其保存在我的数据库中。

我有异步但它不起作用。等待也是。函数(脚本)在处理请求之前结束

RowToSend = {
  name: 'Toto',
  note: 17, // average all document
  city: 'london'
}

功能TWO ..相同的逻辑

全球功能:

function RequestOne(dateStart, dateEnd, RowToInsert) =

     CollectionOne.find({
        AQS_REF_TIME_EVENT_MSR: {
            $gte: startInterv,
            $lte: endInerv
        },

    })
    .exec((err, arrAqsOneHourMoy) => {
      if (err)
         return err;
      if (arrAqsOneHourMoy) {
         AttributeOneAverge = 0;
         AttributeTwoAverage = 0;

       for (i = 0; i < arrAqsOneHourMoy.length; i++) {
                AttributeOneAverge = (arrAqsOneHourMoy[i].AttributeOne + AttributeOneAverge);
                AttributeTwoAverge = (arrAqsOneHourMoy[i].AttributeTwo + AttributeTwoAverge);
            }

      RowToInsert.AttributeOne = ((AttributeOneAverge) / (i + 1));
      RowToInsert.AttributeOne = (AttributeTwoAverge) / (i + 1);
      }
    })
} 

1 个答案:

答案 0 :(得分:0)

function RequestOne(dateStart, dateEnd, RowToInsert) =

     CollectionOne.find({
        AQS_REF_TIME_EVENT_MSR: {
            $gte: startInterv,
            $lte: endInerv
        },

    })
    .exec((err, arrAqsOneHourMoy) => {
      if (err)
         return err;
      if (arrAqsOneHourMoy) {
         AttributeOneAverge = 0;
         AttributeTwoAverage = 0;

       for (i = 0; i < arrAqsOneHourMoy.length; i++) {
                AttributeOneAverge = (arrAqsOneHourMoy[i].AttributeOne + AttributeOneAverge);
                AttributeTwoAverge = (arrAqsOneHourMoy[i].AttributeTwo + AttributeTwoAverge);
            }

      RowToInsert.AttributeOne = ((AttributeOneAverge) / (i + 1));
      RowToInsert.AttributeOne = (AttributeTwoAverge) / (i + 1);
      }
    })
} 

功能TWO ..相同的逻辑

全球功能:

function GenericFunction(time, sensorID, TEST_oracle_save) {
var d = new Date(2018, 00, 03, 11, 00, 00, 000);
var x = d.toISOString();

var d2 = new Date(2018, 00, 03, 11, 59, 59, 999);
var y = d2.toISOString();


RequestOne(x, y, TEST_oracle_save);
RequestTwo(x, y, TEST_oracle_save);


//Connexion to ORACLE DATABASE 

//Connexion etablished 

// Persist TEST_oracle_save on field Oracle
}