Anda harus menggunakan $
operator posisi di $set
. Untuk menetapkan properti tersebut secara dinamis, berdasarkan apa yang ada di req.body
. Anda , Anda perlu membangun $set
. Anda secara terprogram.
Jika Anda ingin memperbarui nama, lakukan hal berikut:
Location.update(
{ 'competitors._id': req.params.competitorId },
{ $set: { 'competitors.$.name': req.body.name }},
(err, result) => {
if (err) {
res.status(500)
.json({ error: 'Unable to update competitor.', });
} else {
res.status(200)
.json(result);
}
}
);
Salah satu cara Anda mungkin secara terprogram membangun $set
menggunakan req.body
adalah dengan melakukan hal berikut:
let updateObj = {$set: {}};
for(var param in req.body) {
updateObj.$set['competitors.$.'+param] = req.body[param];
}
Lihat ini jawab untuk lebih jelasnya.