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

MongoDB में एम्बेडेड डॉक्यूमेंट के फ़ील्ड को इंक्रीमेंट कैसे करें?

MongoDB में एम्बेडेड फ़ील्ड को इंक्रीमेंट करना

MongoDB में नेस्टेड या एम्बेडेड डॉक्यूमेंट के अंदर मौजूद किसी फ़ील्ड की वैल्यू को बढ़ाने के लिए $inc ऑपरेटर का उपयोग डॉट नोटेशन (.) के साथ किया जाता है।

उदाहरण: स्टूडेंट स्कोर अपडेट करना

मान लीजिए हमारे पास StudentDetails के अंदर StudentScores एम्बेडेड है:

{
  "StudentDetails": {
    "StudentScores": {
      "StudentMathScore": 90,
      "StudentMongoDBScore": 78
    }
  }
}

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

> db.embeddedValueIncrementDemo.insertOne({
    "StudentDetails": {
      "StudentScores": {
        "StudentMathScore": 90,
        "StudentMongoDBScore": 78
      }
    }
  });
{
  "acknowledged": true,
  "insertedId": ObjectId("5cd2b670345990cee87fd896")
}

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

> db.embeddedValueIncrementDemo.find().pretty();
{
  "_id": ObjectId("5cd2b670345990cee87fd896"),
  "StudentDetails": {
    "StudentScores": {
      "StudentMathScore": 90,
      "StudentMongoDBScore": 78
    }
  }
}

एम्बेडेड फ़ील्ड को इंक्रीमेंट करें

StudentMongoDBScore को 20 से बढ़ाने के लिए:

> db.embeddedValueIncrementDemo.update(
  { _id: new ObjectId("5cd2b670345990cee87fd896") },
  { $inc: { "StudentDetails.StudentScores.StudentMongoDBScore": 20 } },
  { upsert: true, safe: true }
);
WriteResult({ "nMatched": 1, "nUpserted": 0, "nModified": 1 })

अपडेटेड डॉक्यूमेंट चेक करें

> db.embeddedValueIncrementDemo.find().pretty();
{
  "_id": ObjectId("5cd2b670345990cee87fd896"),
  "StudentDetails": {
    "StudentScores": {
      "StudentMathScore": 90,
      "StudentMongoDBScore": 98
    }
  }
}

मुख्य बिंदु

  • डॉट नोटेशन (StudentDetails.StudentScores.StudentMongoDBScore) से नेस्टेड फ़ील्ड तक पहुँचें
  • $inc ऑपरेटर वैल्यू को एटॉमिक तरीके से बढ़ाता है
  • upsert: true से डॉक्यूमेंट न होने पर नया बन जाता है
  1. MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें MongoDB क्वेरी: आईडी को सरणी फ़ील्ड मान से बाहर कैसे करें

    इसके लिए $not के साथ $in ऑपरेटर का उपयोग करें। आइए एक संग्रह बनाते हैं: [ { id: 101, subjectid: [ 102 ] }, { id: 102, subjectid: [ 102 ] } ] सभी दस्तावेज़ देखने के लिए: db.collection.find() आउटपुट: [ { _id: ObjectId(5a934e000102030405000000),

  1. - MongoDB में विशिष्ट स्ट्रिंग वाले दस्तावेज खोजें

    कौन सा दस्तावेज विशिष्ट स्ट्रिंग रखता है, यह खोजने के लिए find() के साथ $regex का उपयोग करें। आइए दस्तावेजों के साथ एक कलेक्शन बनाते हैं: > db.demo597.insertOne({Name:John Doe}); { acknowledged : true, insertedId : ObjectId(5e947ae3f5f1e70e134e2690) } > db.demo597.insertOne({Name:John Smith})

  1. - MongoDB में एम्बेडेड डॉक्यूमेंट की सरणी पर फ़िल्टर क्वेरी कैसे करें?

    इसके लिए MongoDB में aggregate() का उपयोग करें। आइए 3 स्तरों के नेस्टेड डॉक्यूमेंट्स के साथ एक कलेक्शन बनाते हैं: > db.demo736.insertOne( { _id: 101, details1: [ { details2: [ { details3: { Name: John } } ] } ] } ); { acknowledged : true, insertedId : 101 } > db.demo736.insertOne( { _id: 102,