आपको $
. का उपयोग करना होगा आपके $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
. बना सकते हैं req.body
. का उपयोग करना निम्न कार्य करके है:
let updateObj = {$set: {}};
for(var param in req.body) {
updateObj.$set['competitors.$.'+param] = req.body[param];
}
देखें यह अधिक जानकारी के लिए उत्तर दें।