खोज…


वाक्य - विन्यास

  • {$ सेट: {<field1>: <value1>, <field2>: <value2>, ...}}

पैरामीटर

मापदंडों अर्थ
क्षेत्र का नाम फ़ील्ड अपडेट किया जाएगा: { name : 'Tom'}
targetVaule मान फ़ील्ड को सौंपा जाएगा: {name: 'Tom' }

टिप्पणियों

$ सेट ऑपरेटर के लिए संदर्भ: आधिकारिक वेबसाइट पर $ सेट

दस्तावेज़ में निर्दिष्ट फ़ील्ड (ओं) को अपडेट करने के लिए $ सेट ऑपरेटर

I.Overview

MongoDB और RDBMS के बीच एक महत्वपूर्ण अंतर है MongoDB में कई प्रकार के ऑपरेटर हैं। उनमें से एक अपडेट ऑपरेटर है, जो अपडेट स्टेटमेंट में उपयोग किया जाता है।

II। क्या होगा यदि हम अपडेट ऑपरेटरों का उपयोग नहीं करते हैं?

मान लीजिए कि हमारे पास छात्र जानकारी संग्रहीत करने के लिए एक छात्र संग्रह है (तालिका दृश्य): यहाँ छवि विवरण दर्ज करें

एक दिन आपको एक नौकरी मिलती है जिसे टॉम के लिंग को "एम" से "एफ" में बदलने की आवश्यकता होती है। यह आसान है, है ना? तो आप अपने RDBMS अनुभव के आधार पर बहुत जल्दी नीचे बयान लिखते हैं:

db.student.update(
    {name: 'Tom'}, // query criteria
    {sex: 'F'} // update action
);

आइए देखें क्या है नतीजा: यहाँ छवि विवरण दर्ज करें

हमने टॉम की उम्र और नाम खो दिया! इस उदाहरण से, हम जान सकते हैं कि यदि अपडेट स्टेटमेंट में कोई भी अपडेट ऑपरेटर के बिना है तो पूरे दस्तावेज़ को ओवरराइड किया जाएगा । यह MongoDB का डिफ़ॉल्ट व्यवहार है।

III। $ सेट ऑपरेटर

यदि हम टॉम के दस्तावेज़ में केवल 'सेक्स' क्षेत्र को बदलना चाहते हैं, तो हम यह निर्दिष्ट $set लिए $set का उपयोग कर सकते हैं कि हम किस क्षेत्र को देखना चाहते हैं:

db.student.update(
    {name: 'Tom'}, // query criteria
    {$set: {sex: 'F'}} // update action
);

$set का मूल्य एक वस्तु है, इसके क्षेत्र उन क्षेत्रों के लिए हैं जिन्हें आप दस्तावेजों में अपडेट करना चाहते हैं, और इन क्षेत्रों के मूल्य लक्ष्य मान हैं।

तो, परिणाम अब सही है: यहाँ छवि विवरण दर्ज करें

इसके अलावा, यदि आप एक ही समय में 'सेक्स' और 'उम्र' दोनों को बदलना चाहते हैं, तो आप उन्हें $set जोड़ सकते हैं:

db.student.update(
    {name: 'Tom'}, // query criteria
    {$set: {sex: 'F', age: 40}} // update action
);


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow