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

MongoDB-এ সাব-ডকুমেন্টে নির্দিষ্ট আইটেম খুঁজে বের করা

MongoDB-এ সাব-ডকুমেন্ট বা নেস্টেড অ্যারেতে নির্দিষ্ট মান খুঁজে বের করতে ডট (.) নোটেশন ব্যবহার করা হয়। এটি সহজ এবং কার্যকর পদ্ধতি।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo81.insertOne({"StudentDetails":[{"StudentName":"Carol","StudentSubject":"Java"},{ "StudentName" : "David", "StudentSubject" : "MongoDB "}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bf6ec71bf0181ecc4229d") }
> db.demo81.insertOne({"StudentDetails":[{"StudentName":"Mike","StudentSubject":"Python"},{ "StudentName" : "David", "StudentSubject" : "C "}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bf70471bf0181ecc4229e") }
> db.demo81.insertOne({"StudentDetails":[{"StudentName":"Jace","StudentSubject":"C++"},{ "StudentName" : "John", "StudentSubject" : "MySQL "}]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2bf72071bf0181ecc4229f") }

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

> db.demo81.find();

আউটপুট:

{ "_id" : ObjectId("5e2bf6ec71bf0181ecc4229d"), "StudentDetails" : [ { "StudentName" : "Carol", "StudentSubject" : "Java" }, {"StudentName" : "David", "StudentSubject" : "MongoDB" } ] }
{ "_id" : ObjectId("5e2bf70471bf0181ecc4229e"), "StudentDetails" : [ { "StudentName" : "Mike", "StudentSubject" : "Python" }, { "StudentName" : "David", "StudentSubject" : "C" } ] }
{ "_id" : ObjectId("5e2bf72071bf0181ecc4229f"), "StudentDetails" : [ { "StudentName" : "Jace", "StudentSubject" : "C++" }, { "StudentName" : "John", "StudentSubject" : "MySQL" } ] }

সাব-ডকুমেন্টে খোঁজার কোয়ারী

ডট নোটেশন StudentDetails.StudentSubject ব্যবহার করে "MongoDB" সাবজেক্ট খুঁজে বের করা হয়েছে:

> db.demo81.find({"StudentDetails.StudentSubject":"MongoDB"});

ফলাফল

{ "_id" : ObjectId("5e2bf6ec71bf0181ecc4229d"), "StudentDetails" : [ { "StudentName" : "Carol", "StudentSubject" : "Java" }, { "StudentName" : "David", "StudentSubject" : "MongoDB" } ] }

ব্যাখ্যা: কোয়ারীটি সেই ডকুমেন্ট রিটার্ন করেছে যাতে StudentDetails অ্যারেতে কমপক্ষে একটি এলিমেন্টের StudentSubject ফিল্ডের মান "MongoDB"।

অতিরিক্ত টিপস:

  • নির্দিষ্ট এলিমেন্টের জন্য: db.demo81.find({"StudentDetails.0.StudentSubject": "Java"}) (প্রথম এলিমেন্ট)
  • $elemMatch ব্যবহার করলে একই এলিমেন্টে একাধিক শর্ত মেলাতে পারেন
  • প্রজেকশন দিয়ে শুধু মেলে এলিমেন্টটা পেতে: db.demo81.find({"StudentDetails.StudentSubject":"MongoDB"}, {"StudentDetails.$": 1})
  1. MongoDB-এ প্রতিটি গ্রুপে সর্বোচ্চ মান বের করা

  2. MongoDB-এ অ্যারে এলিমেন্টস সহ নির্দিষ্ট ডকুমেন্ট ফেচ করা

  3. MongoDB Aggregation-এ নির্দিষ্ট ফিল্ড মান অনুযায়ী ডকুমেন্ট ফিল্টার করা

  4. MongoDB-তে ডকুমেন্ট এবং সাব-ডকুমেন্ট উদাহরণ ও আপডেট