$
を使用する必要があります $set
の位置演算子 。 req.body
の内容に基づいて、これらのプロパティを動的に割り当てるため 、$set
を作成する必要があります プログラムで。
名前を更新する場合は、次のようにします。
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);
}
}
);
プログラムで$set
を作成する1つの方法 req.body
を使用する 次のことを行います:
let updateObj = {$set: {}};
for(var param in req.body) {
updateObj.$set['competitors.$.'+param] = req.body[param];
}
これ をご覧ください 詳細については回答してください。