如何在同步模式下保存Mongoose?

时间:2016-07-14 02:16:54

标签: mongoose

当我保存4条记录时,我需要逐个保存它们,所以我的代码是

a.save(function(){
 b.save(function(){
  c.save(function(){
   d.save(function(){
   }
  }
 }
}

如何编写像

这样的代码
a.save();
b.save();
c.save();
d.save();

并将保存设置为同步模式?

1 个答案:

答案 0 :(得分:3)

你不能真正制作moongoose(或其他任何与db)的同步模式,因为node.js不是以这种方式制作的。但有两种方法可以使它更容易或更干净。

如果所有4条记录都是同一模型,则可以创建此元素的数组并使用Moognoose insertMany(http://mongoosejs.com/docs/api.html#model_Model.insertMany)。如果没有,您可以使用异步库(http://caolan.github.io/async/docs.html)。在这种情况下,您的代码将如下所示:

var objArr = [a, b, c, d];
async.each(objArr, function(object, callback){
    object.save(function(err){
        if(err) { 
            callback(err)
        }
        else { 
            callback() 
        }
    });
}, function (err){
    if(err) { 
        //if any of your save produced error, handle it here
    } 
    else {
        // no errors, all four object should be in db
    }
});