Node.js 将大容量数组插入mongodb

Node.js 将大容量数组插入mongodb,node.js,mongodb,Node.js,Mongodb,我对nodejs是新手。 我想调用一个外部API,需要将其结果保存到mongo db集合 我的API URL如下所示:'https://example.com/test/?page=1' 默认情况下,调用URL时将加载第1页。 我需要动态地将页码从1更改为总页数 从API检索的结果包括每页50个结果: 结果如下所示 { page: 1, perPage: 50, count: 37232, status: 'OK', data: [{ name: 'Abc',

我对nodejs是新手。 我想调用一个外部API,需要将其结果保存到mongo db集合

我的API URL如下所示:'https://example.com/test/?page=1' 默认情况下,调用URL时将加载第1页。 我需要动态地将页码从1更改为总页数

从API检索的结果包括每页50个结果: 结果如下所示

{
  page: 1,
  perPage: 50,
  count: 37232,
  status: 'OK',
  data: [{
      name: 'Abc',
      email: 'tes@gmail.com',
      dob: '2020-01-01',
      country: 'US',
      address: 'test',
      city: 'nu'
    },
    {
      name: 'Abcd',
      email: 'tes1@gmail.com',
      dob: '2020-02-01',
      country: 'US',
      address: 'test',
      city: 'nu'
    },
    //similar 50 records altogether
  ]
}
var ApiUrl = 'https://example.com/test/?page=1';
request(ApiUrl,
  function (err, res, body) {
    if (!err && res.statusCode == 200) {
      let jsonObj = JSON.stringify(res);
      let resp = JSON.parse(JSON.parse(jsonObj).body);

      var totalPageCount = resp.count / resp.data.length;
      if (totalPageCount % resp.data.length > 0)
        totalPageCount++;
    } else {
      console.log(err);
    }
    for (var k = 1; k <= totalPageCount; k++) {
      var ApiUrlPerPage = 'https://example.com/test/?page=' + k;
      request(ApiUrlPerPage, function (error, response, body) {
        if (!error && response.statusCode == 200) {
          let json = JSON.stringify(response);
          let result = JSON.parse(JSON.parse(json).body);
          for (var j = 0; j < result.data.length; j++) {
            var todo = new userModel({
                ticker: result.data[j].name
              },
            );
            // Save it to database
            todo.save(function (err) {
              if (err)
                console.log("Error:" + err);
            })
          }
        } else {
          console.log(error);
        }
      })
    }
  }
)
我的代码如下

{
  page: 1,
  perPage: 50,
  count: 37232,
  status: 'OK',
  data: [{
      name: 'Abc',
      email: 'tes@gmail.com',
      dob: '2020-01-01',
      country: 'US',
      address: 'test',
      city: 'nu'
    },
    {
      name: 'Abcd',
      email: 'tes1@gmail.com',
      dob: '2020-02-01',
      country: 'US',
      address: 'test',
      city: 'nu'
    },
    //similar 50 records altogether
  ]
}
var ApiUrl = 'https://example.com/test/?page=1';
request(ApiUrl,
  function (err, res, body) {
    if (!err && res.statusCode == 200) {
      let jsonObj = JSON.stringify(res);
      let resp = JSON.parse(JSON.parse(jsonObj).body);

      var totalPageCount = resp.count / resp.data.length;
      if (totalPageCount % resp.data.length > 0)
        totalPageCount++;
    } else {
      console.log(err);
    }
    for (var k = 1; k <= totalPageCount; k++) {
      var ApiUrlPerPage = 'https://example.com/test/?page=' + k;
      request(ApiUrlPerPage, function (error, response, body) {
        if (!error && response.statusCode == 200) {
          let json = JSON.stringify(response);
          let result = JSON.parse(JSON.parse(json).body);
          for (var j = 0; j < result.data.length; j++) {
            var todo = new userModel({
                ticker: result.data[j].name
              },
            );
            // Save it to database
            todo.save(function (err) {
              if (err)
                console.log("Error:" + err);
            })
          }
        } else {
          console.log(error);
        }
      })
    }
  }
)
var-ApiUrl=https://example.com/test/?page=1';
请求(APIRL,
功能(错误、恢复、正文){
如果(!err&&res.statusCode==200){
让jsonObj=JSON.stringify(res);
让resp=JSON.parse(JSON.parse(jsonObj.body));
var totalPageCount=resp.count/resp.data.length;
如果(totalPageCount%resp.data.length>0)
totalPageCount++;
}否则{
控制台日志(err);
}
对于(var k=1;k