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

MongoDB-তে $elemMatch এবং $and দিয়ে অ্যারে ফিল্ডে একাধিক শর্ত মিলিয়ে ডকুমেন্ট বের করা

MongoDB-তে একই অ্যারে ফিল্ডের ভিন্ন ভিন্ন এলিমেন্টে ভিন্ন ভিন্ন শর্ত মিলাতে $and সাথে একাধিক $elemMatch ব্যবহার করা হয়। প্রতিটি $elemMatch আলাদা এলিমেন্টে মিলাতে পারে।

উদাহরণ: ডিটেইলস অ্যারে (Name, Value)

> db.demo592.insertOne({ "id": 101, "details": [ { "Name": "Chris", "Value": "200" }, { "Name": "David", "Value": "800" } ] });
> db.demo592.insertOne({ "id": 102, "details": [ { "Name": "Chris", "Value": "500" }, { "Name": "David", "Value": "900" } ] });

কোয়েরি: Chris-এর Value >= 500 AND David-এর Value >= 600

> db.demo592.find({
    $and: [
        { "details": { $elemMatch: { "Name": "Chris", "Value": { $gte: "500" } } } },
        { "details": { $elemMatch: { "Name": "David", "Value": { $gte: "600" } } } }
    ]
});

আউটপুট: শুধু id: 102 वाला ডকুমেন্ট (Chris=500, David=900 - উভয় শর্ত পূরণ)।

গুরুত্বপূর্ণ পার্থক্য:

  • একটি $elemMatch-এ একাধিক ফিল্ড: একই এলিমেন্টে সব শর্ত পূরণ করতে হয়
  • $and-এ একাধিক $elemMatch: ভিন্ন ভিন্ন এলিমেন্টে ভিন্ন শর্ত পূরণ করতে পারে

উপরের উদাহরণে Chris এবং David আলাদা এলিমেন্ট, তাই $and + দুটি $elemMatch প্রয়োজন।

  1. MongoDB-এ অ্যারে ফিল্ড রিভার্স (Reverse) করা

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

  3. MongoDB-এ নির্দিষ্ট ফিল্ড থাকা ডকুমেন্ট কিভাবে খুঁজে বের করবেন?

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