使用_assign / _merge / _extend

时间:2015-06-21 23:33:47

标签: mongodb mongoose

我遇到一个问题何时使用哪一个,以下是mongoose的更新功能,它运行正常。

// Updates an existing form in the DB.
exports.update = function(req, res) {
  if(req.body._id) { delete req.body._id; }
  Form.findById(req.params.id, function (err, form) {
    if (err) { return handleError(res, err); }
    if(!form) { return res.send(404); }
    var updated = _.assign(form, req.body);
    updated.formContent = req.body.formContent;
    updated.save(function (err) {
      if (err) { return handleError(res, err); }
      return res.json(200, form);
    });
  });
};

尝试以下操作来替换表单数据。

_.assign(form, req.body); // Works (update database)
_.merge(form, req.body);  // Not Work (database not updating, remain the same)
_.extend(form, req.body); // Works (update database)

上述结果显示,当发布数据中有对象时,合并不起作用。

有些人可以解释为什么一个人没有工作,其他人都可以。我已阅读以下问题

Lodash - difference between .extend() / .assign() and .merge()

但我很想知道哪一个不会更新数据库,但是当应用分配并扩展它时,

0 个答案:

没有答案