Mongoose保存在async.each中创build重复项

我用asynchronous处理数组来保存和validation数据。 这是我正在处理的:

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

我循环这个数组并逐个保存结果,但是如果我有多个访客,它将在我的mongoose文档中创build重复项。 我怎样才能防止呢? 这是处理客人的代码:

 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 } ); } 

async.each并行运行时,多个文档会通过重复检查。 有点慢,但async.eachSeries应该解决这个问题。