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

MongoDB में $pull और पोजीशनल ऑपरेटर $ से नेस्टेड ऐरे एलिमेंट हटाएं

MongoDB में $elemMatch और पोजीशनल $ से नेस्टेड ऐरे एलिमेंट हटाना

नेस्टेड ऐरे (ऐरे के अंदर ऐरे) से विशिष्ट एलिमेंट हटाने के लिए $elemMatch से पैरेंट ऐरे एलिमेंट पहचानें, फिर पोजीशनल $ के साथ $pull उपयोग करें।

कलेक्शन बनाएं और डॉक्यूमेंट इन्सर्ट करें

> db.pullWithPositionalOperatorDemo.insertOne({
  _id: 100,
  "StudentDetails": [
    {"StudentId": "STU-1", "StudentFavouriteSubject": ["MongoDB", "Java"]},
    {"StudentId": "STU-2", "StudentFavouriteSubject": ["PHP", "MySQL"]}
  ]
});
{ "acknowledged": true, "insertedId": 100 }

डॉक्यूमेंट देखें

> db.pullWithPositionalOperatorDemo.find().pretty();
{
  "_id": 100,
  "StudentDetails": [
    {"StudentId": "STU-1", "StudentFavouriteSubject": ["MongoDB", "Java"]},
    {"StudentId": "STU-2", "StudentFavouriteSubject": ["PHP", "MySQL"]}
  ]
}

STU-2 के StudentFavouriteSubject से "MySQL" हटाएं

> db.pullWithPositionalOperatorDemo.update({
  "StudentDetails": {
    $elemMatch: {
      "StudentId": "STU-2",
      "StudentFavouriteSubject": "MySQL"
    }
  }
}, {
  $pull: {
    "StudentDetails.$.StudentFavouriteSubject": "MySQL"
  }
}, {
  multi: true
});
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

हटाने के बाद चेक करें

> db.pullWithPositionalOperatorDemo.find().pretty();
{
  "_id": 100,
  "StudentDetails": [
    {"StudentId": "STU-1", "StudentFavouriteSubject": ["MongoDB", "Java"]},
    {"StudentId": "STU-2", "StudentFavouriteSubject": ["PHP"]}
  ]
}

चरण-दर-चरण

  1. $elemMatch - StudentDetails ऐरे में वह एलिमेंट ढूंढता है जहां StudentId="STU-2" और StudentFavouriteSubject में "MySQL" हो
  2. StudentDetails.$ - पोजीशनल ऑपरेटर, मैच हुए एलिमेंट (दूसरा) को रिप्रेजेंट करता है
  3. $pull: {"StudentDetails.$.StudentFavouriteSubject": "MySQL"} - उस एलिमेंट के नेस्टेड ऐरे से "MySQL" हटाता है

महत्वपूर्ण

  • $elemMatch के बिना, क्वेरी अलग-अलग एलिमेंट पर मैच कर सकती थी
  • multi: true - सभी मैचिंग डॉक्यूमेंट अपडेट (यहां एक ही डॉक्यूमेंट)
  • आधुनिक: updateOne() या updateMany() उपयोग करें
  1. - MongoDB $or ऑपरेटर के साथ दस्तावेज़ कैसे प्राप्त करें

    $or ऑपरेटर दो या अधिक एक्सप्रेशन की सरणी पर लॉजिकल OR ऑपरेशन करता है। आइए दस्तावेज़ों के साथ एक संग्रह बनाएं: > db.demo674.insertOne({Name:Chris,Age:21}); { acknowledged : true, insertedId : ObjectId(5ea3f33604263e90dac943eb) } > db.demo674.insertOne({Name:David,Age:23}); { acknowledged : true

  1. - MongoDB में शर्त के साथ कनकैटेनेशन कैसे करें?

    MongoDB में शर्त के साथ कनकैटेनेशन करने के लिए $cond का उपयोग करें और उसमें $concat के साथ काम करें। आइए एक कलेक्शन बनाते हैं: > db.demo745.insertOne({Value1:100,Value2:100}); { acknowledged : true, insertedId : ObjectId(5eae6419a930c785c834e554) } > db.demo745.insertOne({Value1:40,Value2:50}

  1. - MongoDB में $push के साथ काम करें

    आइए एक कलेक्शन बनाते हैं: > db.demo738.insertOne({Subjects:[C,C++]}); { acknowledged : true, insertedId : ObjectId(5ead696557bb72a10bcf0661) } > db.demo738.insertOne({Subjects:[MySQL,PL/SQL]}); { acknowledged : true, insertedId : ObjectId(5ead696657bb72a10bcf0662) } find() से सभी डॉक्यूमेंट्स