我想通过 put 操作使用 REST api 更新基本的 CRUD 样式。我有一个咖啡脚本基类,其中@model 是一个猫鼬模型,例如子类中的 mongoose.model ('Company', schema)。我正在使用两种方式进行 PUT/更新:
und = require 'underscore'
class CRUDApi
# using findByIdAndUpdate
update1: (req, res) =>
data = und.clone req.body
delete data._id # so mongo doesn't complain
@model.findByIdAndUpdate req.params.id, data, (e, r) ->
res.send r
# using update
update2: (req, res) =>
data = und.clone req.body
delete data._id # so mongo doesn't complain
@model.update { _id: req.params.id }, data, (e, r) ->
res.send req.body
我的问题是:
1) update 和 findByIdAndUpdate 之间有性能差异吗?findByIdAndUpdate 似乎是语法的更好选择,特别是因为它返回 'r' 中的结果而不是增量计数,这比在 update2() 中使用 req.body '伪造'响应感觉更好
2)克隆请求并删除 _.id 属性似乎也很尴尬,所以猫鼬不会抱怨。这是正常的做法吗?