MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB में $set अपडेट ऑपरेटर कैसे काम करता है

MongoDB $set अपडेट ऑपरेटर किसी फ़ील्ड के मान को निर्दिष्ट मान से बदल देता है।

इसका उपयोग अद्यतन संचालन के साथ संयोजन में किया जाता है, उदाहरण के लिए update() . का उपयोग करते समय किसी दस्तावेज़ को अद्यतन करने की विधि।

उदाहरण

मान लीजिए हमारे पास dogs . नामक संग्रह है निम्नलिखित दस्तावेज़ के साथ:

{ "_id" : 1, "name" : "Wag", "weight" : 20 }

और मान लीजिए हम कुत्ते का वजन बदलना चाहते हैं। हम निम्नलिखित update() चला सकते हैं वज़न अपडेट करने का आदेश:

db.dogs.update(
  { _id: 1 },
  {
     $set: { weight: 30 }
  }
)

इसका परिणाम निम्न आउटपुट में होगा:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

जो हमें बताता है कि एक दस्तावेज़ का मिलान और संशोधन किया गया था।

आइए संग्रह की जाँच करें:

db.dogs.find()

परिणाम:

{ "_id" : 1, "name" : "Wag", "weight" : 30 }

हम देख सकते हैं कि वज़न को निर्दिष्ट मान पर अपडेट कर दिया गया है।

एक निर्दिष्ट राशि से मूल्यों में वृद्धि करना भी संभव है, लेकिन ऐसा करने के लिए हमें $inc का उपयोग करना होगा $set . के बजाय ऑपरेटर .

लेकिन यह लेख $set . के बारे में है ऑपरेटर, तो चलिए जारी रखते हैं।

जब फ़ील्ड मौजूद न हो

यदि आप जिस फ़ील्ड को अपडेट करने का प्रयास कर रहे हैं, यदि वह मौजूद नहीं है, तो फ़ील्ड को निर्दिष्ट मान के साथ दस्तावेज़ में जोड़ दिया जाएगा।

उदाहरण:

db.dogs.update(
  { _id: 1 },
  {
     $set: { height: 40 }
  }
)

आउटपुट:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

हम देख सकते हैं कि एक दस्तावेज़ का मिलान और संशोधन किया गया था।

आइए फिर से संग्रह की जाँच करें।

db.dogs.find()

परिणाम:

{ "_id" : 1, "name" : "Wag", "weight" : 30, "height" : 40 }

तो अब दस्तावेज़ में एक height शामिल है निर्दिष्ट मान के साथ फ़ील्ड।

एम्बेडेड दस्तावेज़

आप डॉट नोटेशन का उपयोग करके एम्बेडेड दस्तावेज़ों में मान अपडेट कर सकते हैं। यदि निर्दिष्ट पथ पहले से मौजूद नहीं है, तो इसे बनाया जाता है।

उदाहरण:

db.dogs.update(
  { _id: 1 },
  {
     $set: { 
       "meals.breakfast": "Fish", 
       "meals.lunch": "Chicken", 
       "meals.dinner": "Beef" 
       }
  }
)

आउटपुट:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

आइए findOne() . का उपयोग करें दस्तावेज़ वापस करने के लिए:

db.dogs.findOne()

परिणाम:

{
	"_id" : 1,
	"name" : "Wag",
	"weight" : 30,
	"height" : 40,
	"meals" : {
		"breakfast" : "Fish",
		"dinner" : "Beef",
		"lunch" : "Chicken"
	}
}

हम देख सकते हैं कि एम्बेडेड दस्तावेज़ को निर्दिष्ट के अनुसार जोड़ा गया है।

सरणी

आप जिस तत्व को अपडेट करना चाहते हैं उसकी अनुक्रमणिका निर्दिष्ट करते समय आप डॉट नोटेशन का उपयोग करके सरणियों में डेटा अपडेट कर सकते हैं।

मान लीजिए हमारे पास निम्नलिखित दस्तावेज़ हैं:

{
	"_id" : 1,
	"name" : "Wag",
	"awards" : [
		"Top Dog",
		"Best Dog",
		"Biggest Dog"
	]
}

आइए दो सरणी तत्वों और कुत्ते के नाम को अपडेट करें।

db.dogs.update({ 
    _id: 1 
    }, { 
        $set: { 
            "name": "Bark",
            "awards.0": "Bottom Dog", 
            "awards.1": "Worst Dog"
        } 
})

परिणाम:

WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 }) 

हम देख सकते हैं कि एक दस्तावेज़ का मिलान और संशोधन किया गया था।

और अब दस्तावेज़ को देखें।

db.dogs.findOne()

परिणाम:

{
	"_id" : 1,
	"name" : "Bark",
	"awards" : [
		"Bottom Dog",
		"Worst Dog",
		"Biggest Dog"
	]
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB 3.0 WiredTiger में अनुक्रमणिका उपसर्ग संपीड़न

  2. mongoDB में संयोजन में $unset और $set का उपयोग कैसे करें

  3. मोंगोएक्सपोर्ट करते समय बहुत अधिक स्थितीय विकल्पों का क्या अर्थ है?

  4. MongoDB बैकअप विकल्पों को समझना

  5. नेवला में नेस्टेड सरणी आबाद करें