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

MongoDB-এ অ্যারে এলিমেন্ট মэтচ করার জন্য $or এবং limit(1) ব্যবহার

MongoDB-এ নেস্টেড অ্যারে অবজেক্টের একাধিক ফিল্ডে যেকোনো একটি শর্ত মэтช করলে ডকুমেন্ট রিটার্ন করতে $or ব্যবহার করা হয়। limit(1) দিয়ে শুধু প্রথম ডকুমেন্ট নেওয়া যায়।

নমুনা ডেটা তৈরি (StudentOtherDetails অ্যারে অবজেক্ট)

> db.matchElementInArrayDemo.insertOne({
  "StudentName": "Chris",
  "StudentOtherDetails": [
    {"StudentCountryName": "US", "StudentSkills": "MongoDB"},
    {"StudentCountryName": "UK", "StudentSkills": "Java"}
  ]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd423282cba06f46efe9ee2") }

> db.matchElementInArrayDemo.insertOne({
  "StudentName": "Chris",
  "StudentOtherDetails": [
    {"StudentCountryName": "AUS", "StudentSkills": "PHP"},
    {"StudentCountryName": "US", "StudentSkills": "MongoDB"}
  ]
});
{ "acknowledged": true, "insertedId": ObjectId("5cd423412cba06f46efe9ee3") }

সব ডকুমেন্ট দেখুন

> db.matchElementInArrayDemo.find().pretty();
আউটপুট:
{
  "_id": ObjectId("5cd423282cba06f46efe9ee2"),
  "StudentName": "Chris",
  "StudentOtherDetails": [
    {"StudentCountryName": "US", "StudentSkills": "MongoDB"},
    {"StudentCountryName": "UK", "StudentSkills": "Java"}
  ]
}
{
  "_id": ObjectId("5cd423412cba06f46efe9ee3"),
  "StudentName": "Chris",
  "StudentOtherDetails": [
    {"StudentCountryName": "AUS", "StudentSkills": "PHP"},
    {"StudentCountryName": "US", "StudentSkills": "MongoDB"}
  ]
}

$or দিয়ে CountryName=US অথবা Skills=MongoDB মэтচ করা (limit 1)

> db.matchElementInArrayDemo.find({
  $or: [
    {"StudentOtherDetails.StudentCountryName": "US"},
    {"StudentOtherDetails.StudentSkills": "MongoDB"}
  ]
}).limit(1);
আউটপুট (প্রথম ডকুমেন্ট):
{
  "_id": ObjectId("5cd423282cba06f46efe9ee2"),
  "StudentName": "Chris",
  "StudentOtherDetails": [
    {"StudentCountryName": "US", "StudentSkills": "MongoDB"},
    {"StudentCountryName": "UK", "StudentSkills": "Java"}
  ]
}

ব্যাখ্যা: ডট নোটেশন দিয়ে অ্যারে অবজেক্টের ফিল্ডে কোয়েরি করলে অ্যারেতে যেকোনো একটি উপাদান মэтช করলে ডকুমেন্ট রিটার্ন হয়। $or দিয়ে একাধিক শর্তে যেকোনো একটি মэтচ করলে কাজ করে।

  1. MongoDB-তে অ্যারে থেকে এলিমেন্ট ডিলিট করা

  2. MongoDB-এ অ্যারে ম্যাচের জন্য $all অপারেটর ব্যবহার করা

  3. MongoDB-এ অ্যারে থেকে এলিমেন্ট মুছে ফেলা ($pull অপারেটর)

  4. MongoDB-এ JSON অ্যারের ভেতরের এলিমেন্ট এক্সেস করা (Dot Notation)