ユーザーはいくつかの値のいずれかを更新するオプションを持っていますが、彼が{ name: "new name" }
だけを渡すと、電子メールとパスワードのフィールドも更新されますが、 "null"になります。findOneAndUpdate()を使用する場合、値を指定しない場合(nullで上書きするのではなく)、フィールドをそのまま残す方法はありますか?
req.bodyで実際に提供されているフィールドだけを更新し、残りはそのまま残すことはできますか?
これは、POST要求で更新できるフィールドを指定している間です。これを制限したいので、req.bodyを渡すのは避けています。値が未定義ではありません「ヌル」で上書きするかどうかを確認するためにreq.body.name && req.body.name
:名前のようなものを使用して
db.User.findOneAndUpdate({_id: req.params.id}, {
name: req.body.name,
email: req.body.emaill,
password: req.body.password
})
:
私のコードは次のようになります。
ありがとうございます!
クライアントの代わりにサーバーにこれをコーディングすることで、どの値を更新できるかを制限したいと思っていました。そうしないと、更新を意図していない値を手動で更新することができました。 – dan674