यदि आपके पास MongoDB में दस्तावेज़ों का एक संग्रह है जिसमें सरणियाँ हैं, तो यदि आवश्यक हो तो आप उन सरणियों में नए मान जोड़ सकते हैं।
अपनी विशिष्ट आवश्यकताओं के आधार पर, आप $push . का उपयोग कर सकते हैं ऑपरेटर या $addToSet ऑपरेटर।
द $push संचालिका
मान लीजिए हमारे पास products . नामक संग्रह है निम्नलिखित दस्तावेजों के साथ:
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L" ] } और मान लें कि हम दस्तावेज़ 3 में सरणी में एक मान जोड़ना चाहते हैं।
हम $push . का उपयोग कर सकते हैं update() . के संयोजन के साथ मान जोड़ने के लिए:
db.products.update(
{ _id: 3 },
{ $push: { sizes: "XL" } }
) आइए परिवर्तन को सत्यापित करने के लिए संग्रह को फिर से देखें:
db.products.find() परिणाम:
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "M", "L", "XL" ] }
हम देख सकते हैं कि मान XL दस्तावेज़ 3 में सरणी में जोड़ा गया है।
$push ऑपरेटर का उपयोग विभिन्न संशोधकों के साथ भी किया जा सकता है, जैसे $position , $sort , और $slice ।
आप $each . का उपयोग करके सरणी में एकाधिक मान भी जोड़ सकते हैं संशोधक।
MongoDB देखें $push उदाहरण के लिए।
द $addToSet संचालिका
$addToSet ऑपरेटर $push . के समान काम करता है , कुछ चीजों को छोड़कर:
- यदि आप जिस मान को जोड़ने का प्रयास कर रहे हैं वह पहले से ही सरणी में मौजूद है, तो इसे जोड़ा नहीं जाएगा।
- द
$position,$sort, और$sliceसंशोधक का उपयोग$addToSet. के साथ नहीं किया जा सकता है ।
मान लीजिए हमारा संग्रह इस तरह दिखता है:
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L", "XL" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "S", "M", "L", "XL" ] } आइए दस्तावेज़ 2 में सरणी में कई मान डालें:
db.products.update(
{ _id: 2 },
{
$addToSet: {
sizes: {
$each: [ "XXL", "XXXL" ]
}
}
}
) आइए अब संग्रह को फिर से देखें:
db.products.find() परिणाम:
{ "_id" : 1, "product" : "Bat", "sizes" : [ "S", "M", "L", "XL" ] }
{ "_id" : 2, "product" : "Hat", "sizes" : [ "S", "L", "XL", "XXL", "XXXL" ] }
{ "_id" : 3, "product" : "Cap", "sizes" : [ "S", "M", "L", "XL" ] } हम देख सकते हैं कि दो मानों को अपेक्षित के रूप में दस्तावेज़ 2 में सरणी में जोड़ा गया था।
यह उदाहरण $each . का उपयोग करता है संशोधक, जिसका उपयोग आप $push . के साथ भी कर सकते हैं ऑपरेटर।
मैंने केवल $each . का उपयोग किया है संशोधक क्योंकि मैं कई मान जोड़ रहा था। यदि मैं केवल एक मान का उपयोग कर रहा होता, तो मैं $each . को छोड़ सकता था संशोधक, और सिंटैक्स उपरोक्त $push . की तरह अधिक दिखाई देता उदाहरण।
जैसा कि उल्लेख किया गया है, यदि मान पहले से मौजूद है, तो इसे जोड़ा नहीं जाएगा। साथ ही, दोनों ऑपरेटरों के साथ, यदि आप एक सरणी जोड़ते हैं, तो संपूर्ण सरणी मौजूदा सरणी के भीतर एक अलग मान के रूप में जोड़ दी जाएगी।
MongoDB देखें $addToSet अधिक उदाहरणों के लिए।