我保存到 MongoDB 的数据不起作用,是因为我的搜索有误吗?

My save data to MongoDB not functioning, is it because my searching is wrong?

我正在尝试做一个比较函数。如果我搜索的值不存在,新值将被保存到数据库中。但我得到的只是找到了 0 个新数据。所以系统决定不保存数据。我搜索错了吗?

这是我的代码:

    var count = 0;
for (var t = 1; t < 151; t++) {

    var searching = JobsSchema.find({ jobName: name[t], company: company[t] })

    if (searching == null) {

        count = count + 1;

        var newJobs = new JobsSchema({
            "jobName": name[t],
            "country": country[t],
            "company": company[t],
            "jobType": type[t],
            "salary": salary[t],
            "skills": skills[t],
            "jobDesc": desc[t],
            "jobReq": req[t],
            "jobResponsibility": resp[t],
            "industry": industry[t],

        })

        newJobs.save(function (err, result) {
            if (err) {
                console.log(err);
            }
        })
    }
}

console.log(count + " new data found.");

你应该 await 你的 find 函数。
此外,将其更改为 findOne 到 return JobsSchemaawait save 调用的单个实例。
最后,您需要将代码包装到 async 函数中:

const saveData = async () => {
  var count = 0;
  for (var t = 1; t < 151; t++) {
    var searching = await JobsSchema.findOne({
      jobName: name[t],
      company: company[t],
    });

    if (!searching) {
      count = count + 1;

      var newJobs = new JobsSchema({
        jobName: name[t],
        country: country[t],
        company: company[t],
        jobType: type[t],
        salary: salary[t],
        skills: skills[t],
        jobDesc: desc[t],
        jobReq: req[t],
        jobResponsibility: resp[t],
        industry: industry[t],
      });

      await newJobs.save();
    }
  }

  console.log(count + ' new data found.');
};

saveData();