Bạn sẽ cần sử dụng $
toán tử vị trí trong $set
của bạn . Để chỉ định động các thuộc tính đó, dựa trên những gì có trong req.body
của bạn , bạn sẽ cần thiết lập $set
của mình theo chương trình.
Nếu bạn muốn cập nhật tên, bạn làm như sau:
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);
}
}
);
Một cách bạn có thể lập trình để tạo $set
sử dụng req.body
bằng cách làm như sau:
let updateObj = {$set: {}};
for(var param in req.body) {
updateObj.$set['competitors.$.'+param] = req.body[param];
}
Xem điều này câu trả lời để biết thêm chi tiết.