【发布时间】:2018-01-16 10:09:21
【问题描述】:
我必须在两个数据库(Mongo 和 Oracle)之间架起一座桥梁(脚本)。
我在我的 MONGO 数据库的三个不同集合中运行三个查找查询。
Collection 1 = [{
name: 'Toto',
from: 'Momo',
note: 5,
cat: 'noCategori'
}]
Collection 2 = [{
city: 'london',
country: 'UK'
}]
...etc
我从我对这个列表进行处理的每个集合中检索文档列表(例如:平均)。
RowToSend = {
name: 'Toto',
note: 17, // average all document
city: 'london'
}
我与 Oracle 建立了连接并保留了这一行。
我想并行运行对 mongo 的查询。在三个请求和处理结束时。我创作我的录音并将其保存在我的数据库中。
我有异步,但它不起作用。也有等待。函数(脚本)在请求处理之前结束
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);
}
})
}
功能二..相同的逻辑
全局函数:
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
}
【问题讨论】:
-
显示你的代码
-
请包含与实际请求相关的代码。
-
你试过
Promise.all([ c_1.find({}), c_2.find({}), c_3.find({}) ]).then(writeToOracle)吗? -
我已经在答案中显示了代码
标签: javascript node.js mongodb express ecmascript-6