【问题标题】:Mongoose save creates duplicates inside async.eachMongoose 保存在 async.each 中创建重复项
【发布时间】:2016-10-14 14:20:41
【问题描述】:

我使用异步处理了一个数组以保存和验证数据。这是我正在处理的:

var guests = [{
  "email": "first@email.com",
  "name": "First guest"
},{
  "email": "second@email.com",
  "name": "Second guest"
}];

我正在遍历这个数组并一一保存结果,但如果我有多个客人,它将在我的猫鼬文档中创建重复项。我怎样才能防止这种情况?下面是处理客人的代码:

Posts.findOne({ '_id': req.params.id }, function (err, post) {

  async.each(guests, function(guest, callback) {

      post.guests.push({
        "email": guest.email,
        "name": guest.name
      });

      post.save(function (err) {
        //process error, send email etc...
        callback();
      });

    },
    function(err){
      //return response
    }
  );

}

【问题讨论】:

    标签: javascript node.js mongodb mongoose


    【解决方案1】:

    由于 async.each 并行运行,多个文档将通过重复检查。有点慢,但 async.eachSeries 应该可以解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-17
      • 1970-01-01
      • 2020-10-19
      • 2016-09-18
      • 2020-11-28
      • 2012-11-04
      • 2015-06-11
      相关资源
      最近更新 更多