I次のスキーマがあります。私はPUTを送信するときに今マングースModel.update() - 更新のみ提供される値
// Route to update a quote in the DB
app.put('/words/:id', function(req, res) {
const quote = new Word({
_id: req.params.id,
author: req.body.author,
quote: req.body.quote,
source: req.body.source,
rating: req.body.rating,
updatedAt: Date.now(),
});
Word.update(quote, function(err, raw) {
if (err) {
res.send(err);
}
res.send(raw);
});
});
:
const wordSchema = mongoose.Schema({
author: {type: String, index: true, default: 'unknown'},
quote: String,
source: {type: String, default: 'unknown', index: true},
rating: {type: Number, default: 0},
createdAt: {type: Date, default: Date.now},
updatedAt: {type: Date, default: Date.now},
});
そして、私の急行アプリで、次のPUTルートをリクエストで、デフォルト値で設定されたパラメータが提供されない場合、それらはスキーマのデフォルト値で埋められます。提供された値のみを更新するにはどうすればよいですか?
ありがとうございました。
app.put('/words/:id', function(req, res) {
const doc = {
author: req.body.author,
quote: req.body.quote,
source: req.body.source,
rating: req.body.rating,
updatedAt: Date.now(),
});
Word.update({_id: req.params.id}, doc, function(err, raw) {
if (err) {
res.send(err);
}
res.send(raw);
});
});
ワンダー:あなたは
updatedAt
フィールドを設定するlodashの_.assign()
メソッドを使用できますか? – MrBr@MrBr https://stackoverflow.com/questions/30419575/mongoose-findbyidandupdate-not-returning-correct-modelを参照してください。 – JohnnyHK