কম্পিউটার টিউটোরিয়াল

MongoDB-এ এম্বেডেড ডকুমেন্টের ফিল্ড ইনক্রিমেন্ট করা

MongoDB-এ এম্বেডেড (nested) ডকুমেন্টের ভিতরের ফিল্ড মান বাড়াতে $inc অপারেটর ব্যবহার করা হয়। নিচে একটি উদাহরণ দেওয়া হলো যেখানে StudentDetails অবজেক্টের ভিতরে StudentScores আছে, আর সেখানে StudentMongoDBScore ফিল্ডটি ইনক্রিমেন্ট করা হবে।

নমুনা ডেটা তৈরি

> 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
    }
  }
}

এম্বেডেড ফিল্ড ইনক্রিমেন্ট করার কোয়েরি

ডট (.) নোটেশন ব্যবহার করে নেস্টেড পথ নির্দিষ্ট করুন:

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

আপডেট হওয়া ডকুমেন্ট যাচাই করুন

> db.embeddedValueIncrementDemo.find().pretty();
আউটপুট (StudentMongoDBScore এখন ৯৮):
{
  "_id": ObjectId("5cd2b670345990cee87fd896"),
  "StudentDetails": {
    "StudentScores": {
      "StudentMathScore": 90,
      "StudentMongoDBScore": 98
    }
  }
}

মূল পয়েন্ট: এম্বেডেড ফিল্ড আপডেট করতে পূর্ণ পথ (যেমন "StudentDetails.StudentScores.StudentMongoDBScore") কোটেশনМар্কসহ $inc-এ পাস করুন।

  1. MongoDB কোয়ারী: আইডি যদি ডকুমেন্ট ফিল্ড অ্যারে মানের সমান হয় তবে বাদ দেওয়া

  2. MongoDB-তে find()-এ প্রজেকশন দিয়ে _id ফিল্ড হাইড করা

  3. MongoDB-তে $regex ব্যবহার করে নির্দিষ্ট স্ট্রিং ধারণকারী ডকুমেন্ট খোঁজা

  4. MongoDB-এ এমবেডেড ডকুমেন্টের অ্যারে ফিল্টার করা (৩ লেভেল)