Javascript Node.js/Mongoose:向函数发送信息并识别要操作的信息
我有一个应用程序,它向3个不同的API REST服务器发出请求,收集并处理接收到的信息到对象中,并使用mongoose的模型将信息发送到不同的Mongo集合(每个API REST一个) 我的目标是让函数在发送到MongoDB之前或同时(或之后)对不同的信息集进行操作 下面是一个示例,其中有2个具体对象正在被检索并发送到数据库: 目标1:Javascript Node.js/Mongoose:向函数发送信息并识别要操作的信息,javascript,node.js,mongodb,mongoose,operation,Javascript,Node.js,Mongodb,Mongoose,Operation,我有一个应用程序,它向3个不同的API REST服务器发出请求,收集并处理接收到的信息到对象中,并使用mongoose的模型将信息发送到不同的Mongo集合(每个API REST一个) 我的目标是让函数在发送到MongoDB之前或同时(或之后)对不同的信息集进行操作 下面是一个示例,其中有2个具体对象正在被检索并发送到数据库: 目标1: { "name": "X", "a": 10, "b": 9, "n": 1502642712481, "iname": "ix"
{
"name": "X",
"a": 10,
"b": 9,
"n": 1502642712481,
"iname": "ix",
"_id": "59907f34040eb562d8d11d8c"
}
目标2:
{
"name": "Y",
"n": 1502642712552,
"iname": "ix",
"_id": "59907f34040eb562d8d11d8d",
"b": "10",
"a": "9",
}
它们有自己的模型,并通过保存正确地插入MongoDB,我想比较每个对象的“a”和“b”键(仅供参考:“iname”
是两个对象的公用键,“n”
是在返回请求时创建的时间戳)。
我想对'a'
和'b'
进行的操作类型是相对基本的数学(目前):ax-ay
和bx-by
你知道我该怎么做吗
现在,将每个对象保存到db的代码嵌套在无限循环中,如下所示:
async function loopY() {
setTimeout(
async function () {
var list = ['Y'];
var data = await y(list); //<---- This is the call to wait whatever the request of Y will return
data.forEach((object) => {
if (object.name === 'Y') {
var iname = 'ix'
} else {
var iname = 'N/A' };
var tick = new Ymodel({
mk: object.mk,
name: object.name,
a: object.a,
b: object.b,
n: object.n,
iname: iname,
});
// tick.sendToCompare(); //<---- HERE I THOUGHT OF USING A FUNCTION FROM THE MODEL BUT NOT SURE HOW TO HANDLE THE DIVISION BETWEEN THE INFORMATION
tick.save(function(err, tick) {
if (err) return console.log(err);
console.log(`[SUCCESS]: ${tick.name} added to db!`);
});
});
loopY();
}
}, 1000); // <------- THE TIMEOUT HELPS ME MANAGE THE REQUESTS TO THE API SERVERS AND AVOID A "TOO MANY REQUESTS" ERROR.
};
loopY();
异步函数loopY(){
设置超时(
异步函数(){
var list=['Y'];
var数据=等待y(列表);//{
如果(object.name=='Y'){
变量iname='ix'
}否则{
var iname='N/A'};
var tick=newymodel({
mk:object.mk,
name:object.name,
a:物体,a,
b:对象b,
对象,
在南:在南,
});
//勾选.sendToCompare()//