Mongoose Model#save return value

时间:2016-10-29 16:42:26

标签: node.js express mongoose save

当我执行save()时,我想获取整个文档而不是添加的项目。

var newTodo = Todos({
     ID: req.body.ID,
     RuleName: req.body.RuleName
});

newTodo.save(function (err, todos) {
     if (err) throw err;
     res.send(todos);
});

1 个答案:

答案 0 :(得分:4)

你无法得到它,除非你扩展模型方法,或者将其保存在保存

简易版

newTodo.save(function (err, todos) {
     if (err) throw err;
     Todos.find(err, todos) {
         if (err) throw err;
         res.send(todos);
     }
});

带自定义方法的版本

// in schema definition
TodosSchema.methods.saveAndFind = function(cb) {
  var self = this;
  self.save(function(err) {
    if(err) throw err;
    return self.model('Todos').find({}, cb);
  })
};
// in controller
var newTodo = Todos({
     ID: req.body.ID,
     RuleName: req.body.RuleName
});
newTodo.saveAndFind(function (err, todos) {
     if (err) throw err;
     res.send(todos);
});