Javascript Node.js/Mongoose:向函数发送信息并识别要操作的信息

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"

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

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

下面是一个示例,其中有2个具体对象正在被检索并发送到数据库:

目标1:

{
   "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()//