put 操作を介して REST API で基本的な CRUD スタイルを更新したいと考えています。@model が子クラスの mongoose.model ('Company', schema) のような mongoose Model である coffeescript 基本クラスがあります。私は、PUT/update を行う 2 つの方法を考えています。
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' で結果を返すのに対し、インクリメント カウントだけを返すため、構文としてはより良い選択のように思われます。これは、req.body で update2() で応答を「偽造」するよりも気分が良くなります。
2) また、マングースが文句を言わないように、リクエストを複製して _.id プロパティを削除するのは非常に厄介です。これは通常のアプローチですか?