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

MongoDB-এ অ্যারেতে মিলে যাওয়া ডকুমেন্ট বের করার পদ্ধতি ($elemMatch)

MongoDB-এ অ্যারে অফ অবজেক্টস থেকে নির্দিষ্ট শর্ত পূরণ করা এলিমেন্ট (সাব-ডকুমেন্ট) থাকা ডকুমেন্ট বের করতে $elemMatch অপারেটর ব্যবহার করুন।

উদাহরণ

অ্যারে অফ অবজেক্টস সহ ডকুমেন্ট তৈরি করুন:

> db.getMatchingDocumentDemo.insertOne({
    _id: 1,
    "UserDetails": [ { "UserName": "John", "UserAge": 23 } ]
});
{ "acknowledged" : true, "insertedId" : 1 }

> db.getMatchingDocumentDemo.insertOne({
    _id: 2,
    "UserDetails": [ { "UserName": "Larry", "UserAge": 24 } ]
});
{ "acknowledged" : true, "insertedId" : 2 }

সকল ডকুমেন্ট দেখুন:

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

আউটপুট:

{ "_id" : 1, "UserDetails" : [ { "UserName" : "John", "UserAge" : 23 } ] }
{ "_id" : 2, "UserDetails" : [ { "UserName" : "Larry", "UserAge" : 24 } ] }

UserAge = 24 থাকা সাব-ডকুমেন্ট கொண்ட ডকুমেন্ট বের করা

> db.getMatchingDocumentDemo.find({ UserDetails: { $elemMatch: { UserAge: 24 } } });

আউটপুট:

{ "_id" : 2, "UserDetails" : [ { "UserName" : "Larry", "UserAge" : 24 } ] }

ব্যাখ্যা:

  • $elemMatch — অ্যারেতে একই এলিমেন্টে একাধিক শর্ত পূরণ হলে ম্যাচ করে।
  • এখানে শুধু UserAge: 24 শর্ত, তাই সেই এলিমেন্ট ম্যাচ করল।
  • বिना $elemMatch লিখলে: { "UserDetails.UserAge": 24 } — এটি ও কাজ করবে একক শর্তের জন্য।

$elemMatch প্রয়োজন যখন: একই সাব-ডকুমেন্টে একাধিক শর্ত থাকে। উদাহরণ:

db.getMatchingDocumentDemo.find({
    UserDetails: { $elemMatch: { UserAge: { $gte: 20 }, UserName: "Larry" } }
});

এটি নিশ্চিত করে UserAge >= 20 এবং UserName: "Larry" একই অবজেক্টে থাকে।

  1. MongoDB Aggregate-এ অ্যারে উপাদানের পার্থক্য (Difference) দিয়ে সর্ট করা

  2. MongoDB ডকুমেন্টের মধ্যে অ্যারে আইটেম কীভাবে পাবেন?

  3. MongoDB Aggregation-এ $size ব্যবহার করে অ্যারের লেন্থ বের করা

  4. MongoDB-তে অ্যারে ইন্টারসেকশনের ডেটা পাওয়া