आपका update
कथन गलत है, इसमें गलत तर्क दिए गए हैं - आप कई $set
अद्यतन विधि के विभिन्न मापदंडों के रूप में संचालन और विकल्प; वे अलग नामित अद्यतन पैरामीटर के तहत होना चाहिए। सही Node.js सिंटैक्स
है:
update(selector, document, options, callback)
जहां selector
एक ऑब्जेक्ट है जो अपडेट ऑपरेशन के लिए चयनकर्ता/क्वेरी है, document
एक वस्तु भी है जो अद्यतन दस्तावेज़ है और अंत में एक options
. है ऑब्जेक्ट जो डिफ़ॉल्ट रूप से शून्य है और जिसमें वैकल्पिक अपडेट सेटिंग्स हैं।
यहां आप कर रहे हैं
update(selector, document, selector, document, options, options, callback)
जिसमें मोंगो पहले दो मापदंडों का सही उपयोग करके संग्रह को अद्यतन कर रहा है और यह स्वाभाविक रूप से त्रुटि फेंकता है
क्योंकि आपने बहुत अधिक गलत पैरामीटर निर्दिष्ट किए हैं।
इसके अलावा, आपके पास स्थितीय ऑपरेटर का गलत उपयोग है। यह अद्यतन किए जाने वाले दस्तावेज़ का हिस्सा होना चाहिए, क्वेरी में नहीं।
सही क्रियान्वयन के लिए, इस अपडेट का पालन करें
db.getCollection('profiles').update(
/* selector */
{
"_id": ObjectId("57a9aa24e93864e02d91283c"),
"ratings.round": 1
},
/* update document */
{
"$set": {
"presentRound": 2,
"interviewStatus": "in process",
"scheduleInterviewStatus": false,
"ratings.$.roundStatus": "selected"
}
},
/* optional settings */
{ upsert: true, multi: true }
)