我想通過put操作更新基本的CRUD樣式與REST api。我有一個coffeescript基類,其中@model是一個類似於mongoose模型的子類中的mongoose.model('Company',schema)。我要把圍繞兩個方面做PUT /更新:有沒有貓鼬的性能好處更新vs findByIdAndUpdate
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)是否有更新& findByIdAndUpdate之間的性能差異? findByIdAndUpdate似乎是一種更好的語法選擇,尤其是因爲它返回結果'r'而不是增量count,這比'僞裝'update2()中的req.body的響應要好2)另外它似乎很笨拙克隆請求,並刪除_.id屬性,所以貓鼬不抱怨。這是正常的方法嗎?