Node.js / Mongoose:发送信息到一个函数,并识别信息来操作

我有一个应用程序,它向3个不同的API REST服务器发出请求,收集并处理收到的对象信息,并使用mongoose的模型发送信息不同的Mongo集合(每个API REST一个)。

我的目标是在发送到MongoDB之前或同时(或之后)对不同的信息集进行操作。

下面是一个包含两个具体对象的例子,它们被检索并发送到数据库:

Object1:

{ "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”键(FYI: "iname"是一个共同的关键对象和"n"是在请求被返回时创build的时间戳)。 我想对'a''b'做的操作types是相对基础的math(目前): ax - aybx -by

任何想法,我怎么能做到这一点?

现在将每个对象保存到数据库的代码嵌套在一个无限循环中,如下所示:

 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(); 

对于"X"loopX() ),我有完全相同的function,只是它向对象添加了一个"sn"键。

我希望这是足够清楚,尊重规则…另外,非常感谢您的帮助!