Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MongoDB

MongoDB में पोजिशनल $ ऑपरेटर का उपयोग करके सरणी में सब-आइटम सेट करना

MongoDB में पोजिशनल $ ऑपरेटर: सरणी के मिलान वाले तत्व को अपडेट करना

पोजिशनल $ ऑपरेटर क्वेरी शर्त से मेल खाने वाली सरणी में पहले तत्व की पहचान करता है और अपडेट ऑपरेशन में उस तत्व को संदर्भित करने की अनुमति देता है। यह सरणी के विशिष्ट तत्व को अपडेट करने के लिए महत्वपूर्ण है बिना उसकी सटीक इंडेक्स जाने।

नमूना डेटा

> db.demo22.insertOne({
    ProductId: 101,
    ProductDetails: [
        {ProductFirstPrice: '35', ProductSecondPrice: '75'},
        {ProductFirstPrice: '', ProductSecondPrice: ''},
        {ProductFirstPrice: '78', ProductSecondPrice: '24'}
    ]
});
{ "acknowledged": true, "insertedId": ObjectId("5e14c0b422d07d3b95082e70") }

क्वेरी: जहां ProductFirstPrice "35" है, वहां खाली स्ट्रिंग सेट करें

> db.demo22.update(
    {"ProductDetails.ProductFirstPrice": "35"},
    {$set: {"ProductDetails.$.ProductFirstPrice": ""}},
    false, true
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })
  • क्वेरी ProductDetails सरणी में ProductFirstPrice: "35" वाले तत्व को ढूंढती है।
  • $ उस मिलान वाले तत्व को संदर्भित करता है (पहला वाला)।
  • $set उस तत्व के ProductFirstPrice को "" पर सेट करता है।

परिणाम

{ "ProductDetails": [
    { "ProductFirstPrice": "", "ProductSecondPrice": "75" },  // अपडेट किया गया
    { "ProductFirstPrice": "", "ProductSecondPrice": "" },
    { "ProductFirstPrice": "78", "ProductSecondPrice": "24" }
]}

केवल पहला मिलान वाला तत्व अपडेट हुआ। सीमा: पोजिशनल $ ऑपरेटर केवल पहले** मिलान वाले सरणी तत्व को अपडेट करता है। एकाधिक तत्वों को अपडेट करने के लिए $[] (सभी) या $[<identifier>] (फ़िल्टर्ड) ऑपरेटर्स (MongoDB 3.6+) का उपयोग करें।

  1. - MongoDB में सबडॉक्यूमेंट्स के ऐरे को कैसे क्वेरी करें?

    सबडॉक्यूमेंट्स के ऐरे को क्वेरी करने के लिए MongoDB में $unwind का उपयोग करें। नमूना डेटा बनाना (सबडॉक्यूमेंट्स ऐरे) db.demo499.insertOne({ details: [ { Name:MIT, Rank: 1, CountryName:US }, { Name:Stanford University, Rank: 2 }, { Name:University of California, Berkeley, Rank: 3 }

  1. - MongoDB में नेस्टेड सरणी को कैसे सॉर्ट करें?

    MongoDB में नेस्टेड सरणी को सॉर्ट करने के लिए, $sort का उपयोग करें। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo505.insertOne( { details: [ { Name:Chris, Score:58 }, { Name:Bob, Score:45 }, { Name:John, Score:68 }, { Name:David, Score:46 } ] }); { ackn

  1. - MongoDB क्वेरी: यूनिक ऐरे आइटम इकट्ठा करें

    यूनिक ऐरे आइटम इकट्ठा करने के लिए, distinct() का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo588.insertOne({CountryName:[US,AUS,UK,US,UK,AUS]}); { acknowledged : true, insertedId : ObjectId(5e92bbd2fd2d90c177b5bccb) } find() मेथड की मदद से कलेक्शन के सभी दस्तावेज प्रदर्शित क