我使用异步处理数组来保存和验证数据。这就是我正在处理的事情:
var guests = [{
"email": "first@email.com",
"name": "First guest"
},{
"email": "second@email.com",
"name": "Second guest"
}];
我循环遍历此数组并逐个保存结果,但如果我有多个guest虚拟机,它将在我的mongoose文档中创建重复项。我怎么能防止这种情况?以下是处理来宾的代码:
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
}
);
}
答案 0 :(得分:0)
当async.each并行运行时,多个文档将通过重复检查。有点慢,但async.eachSeries应该解决问题。