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

MongoDB-তে সাবসেট কোয়েরি করে ডকুমেন্ট খুঁজে বের করার পদ্ধতি


MongoDB-তে $all অপারেটর ব্যবহার করে অ্যারে সাবসেট কোয়েরি করা

MongoDB-তে কোনো অ্যারে ফিল্ডে নির্দিষ্ট একাধিক ভ্যালু সবগুলো থাকা ডকুমেন্ট খুঁজে বের করতে $all অপারেটর ব্যবহার করা হয়।

ধাপ ১: ডকুমেন্টসহ কালেকশন তৈরি করুন

> db.subsetOfAnArrayDemo.insertOne({
  "StudentProgrammingSkills": [
    "Java", "MongoDB", "MySQL", "C++", "Data Structure", "Algorithm", "Python", "Oracle", "SQL Server"
  ]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5cb9d1e1895c4fd159f80804") }

ধাপ ২: সব ডকুমেন্ট প্রদর্শন করুন

> db.subsetOfAnArrayDemo.find().pretty();

আউটপুট:

{
  "_id" : ObjectId("5cb9d1e1895c4fd159f80804"),
  "StudentProgrammingSkills" : [
    "Java",
    "MongoDB",
    "MySQL",
    "C++",
    "Data Structure",
    "Algorithm",
    "Python",
    "Oracle",
    "SQL Server"
  ]
}

ধাপ ৩: সাবসেট কোয়েরি করুন (MongoDB এবং MySQL দুটোই থাকা ডকুমেন্ট)

> db.subsetOfAnArrayDemo.find({
  StudentProgrammingSkills: {
    $all: ['MongoDB', 'MySQL']
  }
}).pretty();

ফলাফল:

{
  "_id" : ObjectId("5cb9d1e1895c4fd159f80804"),
  "StudentProgrammingSkills" : [
    "Java",
    "MongoDB",
    "MySQL",
    "C++",
    "Data Structure",
    "Algorithm",
    "Python",
    "Oracle",
    "SQL Server"
  ]
}

ব্যাখ্যা: $all অপারেটরটি নির্দিষ্ট করে যে অ্যারে ফিল্ডে প্রদত্ত সব ভ্যালুগুলো উপস্থিত থাকতে হবে (অর্ডার 상관 নেই)। এখানে ['MongoDB', 'MySQL'] দুটোই StudentProgrammingSkills অ্যারেতে থাকা ডকুমেন্টটি রিটার্ন হয়েছে।

দ্রষ্টব্য: $in অপারেটর যেকোনো একটি মিল খায়, কিন্তু $all সবগুলো মিল খুঁজে।

  1. MongoDB-এ সাবডকুমেন্ট অ্যারে থেকে রেজেক্স (Regex) ব্যবহার করে ডেটা ফিল্টার করা

  2. MongoDB-এ নির্দিষ্ট সংখ্যক রেকর্ড বের করা (limit() মেথড)

  3. MongoDB-এ ডকুমেন্ট সংখ্যা (Count) বের করা (count() / countDocuments())

  4. MongoDB-তে ট্যাগ রেকর্ড দ্রুত আপডেট করা (পজিশনাল $ অপারেটর)