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

MongoDB में सब प्रॉपर्टी के रूप में सरणी से तत्व कैसे हटाएं?

MongoDB में नेस्टेड ऑब्जेक्ट के अंदर सरणी से विशिष्ट तत्व हटाने के लिए, डॉट नोटेशन के साथ $pull ऑपरेटर का उपयोग करें।

उदाहरण: नेस्टेड उपयोगकर्ता जानकारी सरणी वाला दस्तावेज़

> db.demo388.insertOne({
    _id: '101',
    userDetails: {
        isMarried: false,
        userInfo: [
            { Name: "Chris", Age: 21 }
        ]
    }
});
{ "acknowledged" : true, "insertedId" : "101" }

दस्तावेज़ देखना

> db.demo388.find();

आउटपुट: एक दस्तावेज़ जिसमें userInfo में एक तत्व है।

हटाएं: Name="Chris" वाले तत्व को userDetails.userInfo से हटाएं

> db.demo388.update(
    { "_id": "101" },
    { $pull: { "userDetails.userInfo": { "Name": "Chris" } } }
);
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

परिणाम जांचें

> db.demo388.find();

आउटपुट: userInfo सरणी अब खाली है।

व्याख्या

  • $pull सरणी से उन तत्वों को हटाता है जो निर्दिष्ट शर्त से मेल खाते हैं।
  • userDetails.userInfo डॉट नोटेशन के माध्यम से नेस्टेड सरणी को लक्षित करता है।
  • शर्त { "Name": "Chris" } सरणी तत्वों से मेल खाती है जहां Name "Chris" है।
  • सभी मिलान वाले तत्व हटा दिए जाते हैं (सिर्फ पहला नहीं)।

संबंधित ऑपरेटर

  • $pullAll: मानों की सरणी द्वारा हटाएं: { $pullAll: { "userDetails.userInfo": [ {Name:"Chris"} ] } } (सटीक ऑब्जेक्ट मिलान)।
  • $pop: पहला/अंतिम तत्व हटाएं: { $pop: { "userDetails.userInfo": 1 } } (अंतिम), -1 (पहला)।
  • स्थिति द्वारा हटाएं: arrayFilters के साथ $[identifier] का उपयोग करें।

नोट

$pull सरणी को इन-प्लेस संशोधित करता है; दस्तावेज़ _id अपरिवर्तित रहता है।

  1. - MongoDB में Subdocument को Document से Remove करना

    Document से subdocument remove करने के लिए $pull operator का उपयोग update() के साथ करें। आइए पहले documents के साथ एक collection बनाते हैं: > db.demo538.insertOne( ... { ... id:101, ... details : ... { ... anotherDetails: ... [ ... { ... Name:Chris, ... Age:21

  1. - MongoDB Array में Element Remove करना

    Element remove करने के लिए update में $pull का उपयोग करें। $pull operator existing array से उन सभी instances को remove करता है जो specified condition से match करते हैं। Collection बनाना db.demo541.insertOne({software:{services:[gmail,facebook,yahoo]}}); { acknowledged : true, insertedId : ObjectId(

  1. - MongoDB क्वेरी: कलेक्शन से पूरा ऐरे हटाएं

    कलेक्शन से पूरा ऐरे हटाने के लिए, MongoDB में $unset का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo609.insertOne({ListOfSubject:[MySQL,MongoDB]}); { acknowledged : true, insertedId : ObjectId(5e974695f57d0dc0b182d62c) } > db.demo609.insertOne({ListOfSubject:[Java]}); { a