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

MongoDB-তে find() এবং ডট নোটেশন ব্যবহার করে রিকারসিভ সার্চ করা

MongoDB-এ অ্যারে অবজেক্টের ভেতরের ফিল্ডে রিকারসিভ সার্চ (নেস্টেড সার্চ) করতে ডট নোটেশন (arrayName.fieldName) ব্যবহার করা হয়।

নমুনা ডেটা তৈরি করা

findOperationDemo কালেকশনে দুটি ডকুমেন্ট ইনসার্ট করি যাতে ClientDetails অ্যারেতে এমবেডেড অবজেক্ট থাকে।

> db.findOperationDemo.insertOne({ "ClientDetails": [ { "ClientId": 101, "ClientName": "Chris" }, { "ClientId": 102, "ClientName": "Robert" } ] });
{ "acknowledged" : true, "insertedId" : ObjectId("5cd9a118b50a6c6dd317ad99") }
> db.findOperationDemo.insertOne({ "ClientDetails": [ { "ClientId": 110, "ClientName": "David" }, { "ClientId": 112, "ClientName": "Mike" } ] });
{ "acknowledged" : true, "insertedId" : ObjectId("5cd9a12fb50a6c6dd317ad9a") }

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

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

আউটপুট:

{ "_id" : ObjectId("5cd9a118b50a6c6dd317ad99"), "ClientDetails" : [ { "ClientId" : 101, "ClientName" : "Chris" }, { "ClientId" : 102, "ClientName" : "Robert" } ] }
{ "_id" : ObjectId("5cd9a12fb50a6c6dd317ad9a"), "ClientDetails" : [ { "ClientId" : 110, "ClientName" : "David" }, { "ClientId" : 112, "ClientName" : "Mike" } ] }

ডট নোটেশন দিয়ে রিকারসিভ সার্চ

ClientDetails অ্যারেতে যেকোনো এলিমেন্টে ClientId: 110 আছে কিনা চেক করি:

> db.findOperationDemo.find({ "ClientDetails.ClientId": 110 });

আউটপুট:

{ "_id" : ObjectId("5cd9a12fb50a6c6dd317ad9a"), "ClientDetails" : [ { "ClientId" : 110, "ClientName" : "David" }, { "ClientId" : 112, "ClientName" : "Mike" } ] }

ব্যাখ্যা: MongoDB স্বয়ংক্রিয়ভাবে অ্যারের প্রতিটি এলিমেন্ট চেক করে। ClientDetails.ClientId মানে "ClientDetails অ্যারেতে যেকোনো অবজেক্টের ClientId"। এটি রিকারসিভ/নেস্টেড সার্চের সরলতম রূপ। গভীর নেস্টিংয়ের জন্য ডট নোটেশন চালিয়ে যান (যেমন a.b.c.field)।

  1. MongoDB find() মেথড নিয়ে কাজ করা

  2. MongoDB কালেকশনে অবজেক্টের অ্যারে খোঁজা

  3. MongoDB-তে অবজেক্টের অ্যারে অনুসন্ধান করা

  4. MongoDB-এ ফুল টেক্সট সার্চ ইমপ্লিমেন্ট করা