MongoDB में db.collection.updateOne () क्या है?

Mongodb Mem Db Collection Updateone Kya Hai



MongoDB एक शक्तिशाली गैर-संबंधपरक डेटाबेस है जो कई दस्तावेज़ों को संग्रहीत कर सकता है। कभी-कभी, उपयोगकर्ता को कुछ मानदंडों को पूरा करने वाले एकल दस्तावेज़ को अपडेट करने की आवश्यकता हो सकती है। इस स्थिति में, वे 'का उपयोग कर सकते हैं db.collection.updateOne () ” विधि, जो चयन मानदंडों को पूरा करने वाले पहले दस्तावेज़ को अद्यतन और संशोधित करती है और इसे संशोधित करती है।

MongoDB में 'db.collection.updateOne ()' विधि क्या है?

' db.collection.updateOne () ” विधि एक एकल दस्तावेज़ को अद्यतन करती है जो परिभाषित मानदंडों से मेल खाता है। यदि एक से अधिक दस्तावेज़ मापदंड से मेल खाते हैं तो केवल पहला दस्तावेज़ संशोधित किया जाएगा। इसका उपयोग अद्यतन ऑपरेटरों के साथ किया जा सकता है, जैसे ' $ सेट ”, “ $ इंक ' और बहुत अधिक .

MongoDB में 'db.collection.updateOne ()' विधि का उपयोग कैसे करें?

' db.collection.updateOne () 'विधि का उपयोग एकल फ़ील्ड के साथ-साथ चयन मानदंड से मेल खाने वाले एकल दस्तावेज़ के कई फ़ील्ड को अपडेट करने के लिए किया जा सकता है। इसके अलावा, यह विधि किसी दस्तावेज़ में फ़ील्ड भी जोड़ सकती है और अद्यतन ऑपरेटरों के साथ इसका उपयोग किया जा सकता है। का वाक्य विन्यास db.collection.updateOne () ”विधि नीचे दी गई है:







मूल सिंटेक्स



db.collection.updateOne ( { filter_criteria } , { अद्यतन } , { विकल्प } )

यहाँ उपरोक्त सिंटैक्स में:



  • यह विधि चयन मानदंडों को पूरा करने वाले पहले दस्तावेज़ को अद्यतन करेगी
  • ' filter_criteria 'अद्यतन के मानदंड को परिभाषित करता है
  • ' अद्यतन ” में वे फ़ील्ड शामिल हैं जिन्हें दस्तावेज़ में संशोधित किया जाएगा
  • ' विकल्प 'तर्क एक वैकल्पिक तर्क है जो इस पद्धति के कार्य को संशोधित करता है, जैसे' upsert ' और ' संकेत देना

इस पोस्ट के लिए, हम एक 'का उपयोग करेंगे Linuxhint_Col2 'संग्रह के दस्तावेज़' के कार्य को प्रदर्शित करने के लिए db.collection.updateOne () ' तरीका। इस संग्रह में संग्रहीत दस्तावेजों को देखने के लिए दिए गए आदेश को निष्पादित करें:





db.Linuxhint_Col2.find ( )

उत्पादन

आउटपुट ने 'में संग्रहीत सभी दस्तावेज़ों को पुनः प्राप्त किया' Linuxhint_Col2 ' संग्रह।



उदाहरण 1: किसी एक फ़ील्ड को अपडेट करें
किसी दस्तावेज़ में एकल फ़ील्ड को अपडेट करने के लिए, उसके चयन मानदंड को परिभाषित करें और मानदंड को अपडेट करें। अद्यतन मानदंड को अद्यतन ऑपरेटरों का उपयोग करके परिभाषित किया जा सकता है। आइए 'अद्यतन करने के लिए एक प्रश्न चलाते हैं' मॉडलिंग शुल्क 'फ़ील्ड से' 18000 ' जहां ' उपनाम 'ऑब्जेक्ट बराबर' डेप 'दस्तावेज़ में:

db.Linuxhint_Col2.updateOne ( { 'मॉडल_नाम। अंतिम_नाम' : 'डेप' } , { $ सेट : { मॉडलिंग शुल्क: 18000 } } )

उत्पादन

आउटपुट ने सफलता संदेश लौटाया।

किए गए परिवर्तनों को सत्यापित करने के लिए, इसका उपयोग करके प्रभावित दस्तावेज़ को पुनः प्राप्त करें ' पाना() ' आज्ञा:

db.Linuxhint_Col2.find ( { 'मॉडल_नाम। अंतिम_नाम' : 'डेप' } )

उत्पादन

आउटपुट सत्यापित करता है कि दस्तावेज़ सफलतापूर्वक अपडेट किया गया था।

उदाहरण 2: 'db.collection.updateOne()' विधि का उपयोग करके एक नया फ़ील्ड जोड़ें
' db.collection.updateOne () 'विधि' का उपयोग करके एक नया क्षेत्र जोड़ती है $ सेट ” ऑपरेटर दस्तावेज़ में अगर यह पहले से मौजूद नहीं है। के रूप में ' अनुभव 'फ़ील्ड उन दस्तावेज़ों के लिए मौजूद नहीं है जहाँ' मॉडलिंग शुल्क ' मै रुक जाना ' 9000 ”।

आइए हम नया क्षेत्र जोड़ें ' अनुभव 'मूल्य के साथ' शुरुआती 'दस्तावेज़ में जहां' मॉडलिंग शुल्क ' मै रुक जाना ' 9000 ”इस क्वेरी का उपयोग करना:

db.Linuxhint_Col2.updateOne ( { 'मॉडलिंग_फी' : { $ लेफ्टिनेंट : 9000 } } , { $ सेट : { 'अनुभव' : 'शुरुआती' } } )

उत्पादन

आउटपुट संदेश देता है जो इंगित करता है कि एक दस्तावेज़ चयन मानदंड से मेल खाता है और सफलतापूर्वक संशोधित किया गया है।

आइए संग्रह में उपलब्ध सभी दस्तावेजों को पुनः प्राप्त करके इसे सत्यापित करें ” Linuxhint_Col2 ':

db.Linuxhint_Col2.find ( )

उत्पादन

आउटपुट दिखाता है कि शर्त को पूरा करने वाला एक दस्तावेज़ संशोधित किया गया है, और एक नया फ़ील्ड सफलतापूर्वक डाला गया है।

उदाहरण 3: 'db.collection.updateOne ()' विधि का उपयोग करके दस्तावेज़ के एकाधिक फ़ील्ड अपडेट करें
उपयोगकर्ता एक दस्तावेज़ में भी कई फ़ील्ड को संशोधित कर सकता है। यहाँ नीचे दी गई यह क्वेरी उस दस्तावेज़ के लिए अंतिम नाम और आयु को संशोधित करेगी जहाँ “ पहला नाम 'बराबर' नूह ':

db.Linuxhint_Col2.updateOne ( { 'मॉडल_नाम.फर्स्ट_नाम' : 'नूह' } , { $ सेट : { 'मॉडल_नाम। अंतिम_नाम' : 'डो' , 'मॉडल उम्र' : 23 } } )

उत्पादन

क्वेरी को बिना किसी त्रुटि के निष्पादित किया गया है।

परिवर्तनों को सत्यापित करने के लिए, दस्तावेज़ को पुनः प्राप्त करने के लिए 'ढूंढें ()' विधि का उपयोग करें जहां ' पहला नाम 'बराबर' नूह :

db.Linuxhint_Col2.find ( { 'मॉडल_नाम.फर्स्ट_नाम' : 'नूह' } )

उत्पादन

आउटपुट ने संशोधित दस्तावेज़ को सफलतापूर्वक वापस कर दिया।

उदाहरण 4: अद्यतन ऑपरेटरों के साथ 'db.collection.updateOne ()' विधि का उपयोग करें
पिछले उदाहरण की तरह, हमने ' $ सेट 'अद्यतन ऑपरेटर' में मानों को संशोधित करने के लिए db.collection.updateOne () ' तरीका। आइए हम एक और अपडेट ऑपरेटर का उपयोग करने का प्रयास करें ” $ इंक ” जो निर्दिष्ट राशि के साथ फ़ील्ड को बढ़ाता है।

यहाँ नीचे दी गई क्वेरी में, विधि उस दस्तावेज़ की खोज करती है जहाँ “ पहला नाम 'बराबर' कैट 'और जोड़ता है' 1000 ' में ' मॉडलिंग शुल्क 'फ़ील्ड का मान:

db.Linuxhint_Col2.updateOne ( { 'मॉडल_नाम.फर्स्ट_नाम' : 'केट' } , { $ इंक : { मॉडलिंग शुल्क: 1000 } } )

उत्पादन

आउटपुट ने एक सफल संदेश लौटाया।

परिवर्तनों को देखने के लिए, 'का उपयोग करें। पाना() प्रभावित दस्तावेज़ को पुनः प्राप्त करने की विधि:

db.Linuxhint_Col2.find ( { 'मॉडल_नाम.फर्स्ट_नाम' : 'केट' } )

उत्पादन

आउटपुट 'के संशोधित मान को चित्रित करता है मॉडलिंग शुल्क ”।

उदाहरण 5: एक नया दस्तावेज़ जोड़ें यदि यह पहले से मौजूद नहीं है तो 'अप्सर्ट' तर्क का उपयोग करें
इस पद्धति के व्यवहार को बदलने के लिए वैकल्पिक तर्क का उपयोग किया जा सकता है। ऐसा ही एक विकल्प है ' upsert ” जो एक नया दस्तावेज़ जोड़ता है यदि कोई मौजूदा दस्तावेज़ क्वेरी में परिभाषित चयन मानदंडों को पूरा नहीं करता है।

आइए उन चयन मानदंडों को परिभाषित करके एक नया दस्तावेज़ जोड़ने का प्रयास करें जो पहले से मौजूद किसी भी दस्तावेज़ को पूरा नहीं करते हैं। उसके बाद, इसके लिए कुछ फ़ील्ड सेट करें और विकल्प जोड़ें “ upsert 'के रूप में' सत्य 'जैसा कि नीचे दिए गए आदेश में दिखाया गया है:

db.Linuxhint_Col2.updateOne ( { 'मॉडल_नाम.फर्स्ट_नाम' : 'डेविड' } , { $ सेट : { मॉडलिंग शुल्क: 10000 , मॉडल_आयु: 23 , 'मॉडल_नाम। अंतिम_नाम' : 'स्मिथ' } } , { अप्सर्ट: सत्य } )

उत्पादन

आउटपुट ने स्वीकृत संदेश को सत्य के रूप में दिखाया।

अंत में, इस कमांड को चलाकर इसके संशोधन को सत्यापित करें:

db.Linuxhint_Col2.find ( { 'मॉडल_नाम.फर्स्ट_नाम' : 'डेविड' } )

उत्पादन

आउटपुट दर्शाता है कि नया दस्तावेज़ सफलतापूर्वक जोड़ा गया है।

निष्कर्ष

' db.collection.updateOne () MongoDB में विधि का उपयोग चयन मानदंडों को पूरा करने वाले पहले दस्तावेज़ को अद्यतन करने के लिए किया जाता है। यह अपडेट ऑपरेटरों का उपयोग करके एक दस्तावेज़ में एकल और साथ ही कई फ़ील्ड को संशोधित कर सकता है, जैसे ' $ सेट ' और ' $ इंक ”। इसके अलावा, यह विधि विधि के व्यवहार को बदलने के लिए वैकल्पिक तर्कों को भी स्वीकार करती है, जैसे ' upsert ” जो चयन मानदंड किसी मौजूदा दस्तावेज़ से मेल नहीं खाने की स्थिति में एक नया दस्तावेज़ जोड़ता है। इस पोस्ट में 'के उपयोग पर चर्चा की गई है' db.collection.updateOne () MongoDB में विधि।