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

MongoDB-তে ডাবল নেস্টেড অ্যারে-এ টেক্সট সার্চ কীভাবে করবেন?

ডট নোটেশন দিয়ে গভীর পথ কুয়েরি

দুই লেভেল নেস্টেড অ্যারে (ডাবল নেস্টেড) -এ সার্চ করার জন্য ডট নোটেশন দিয়ে পথ নির্দিষ্ট করুন।

উদাহরণ: ডাবল নেস্টেড ডকুমেন্ট

> db.doubleNestedArrayDemo.insertOne({
    "StudentId": "1000", "StudentName": "Larry",
    "StudentDetails": [{
        "ProjectName": "Online Banking",
        "ProjectDetails": [
            { "TechnologyUsed": "Java" },
            { "TechnologyUsed": "MySQL in Backend" }
        ]
    }]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5c992bd7330fd0aa0d2fe4cc") }

> db.doubleNestedArrayDemo.insertOne({
    "StudentId": "1001", "StudentName": "Robert",
    "StudentDetails": [{
        "ProjectName": "Student Web Tracker",
        "ProjectDetails": [
            { "TechnologyUsed": "Django Framework" },
            { "TechnologyUsed": "MongoDB in Backend" }
        ]
    }]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5c992cdb330fd0aa0d2fe4cd") }

সার্চ: "Java" টেক্সট থাকা ডকুমেন্ট

> db.doubleNestedArrayDemo.find({
    "StudentDetails.ProjectDetails.TechnologyUsed": "Java"
}).pretty();

আউটপুট: শুধু Larry-এর ডকুমেন্ট (যেখানে Java আছে)।

ব্যাখ্যা

MongoDB অটোমেটিক্যালি অ্যারে ট্রাভার্স করে: StudentDetails অ্যারে -> প্রতিটি এলিমেন্টের ProjectDetails অ্যারে -> প্রতিটি এলিমেন্টের TechnologyUsed ফিল্ড চেক করে।

রেগেক্স সার্চ ও সম্ভব:

db.doubleNestedArrayDemo.find({
    "StudentDetails.ProjectDetails.TechnologyUsed": /Java/i
});

সীমাবদ্ধতা: শুধু ম্যাচ করা নেস্টেড এলিমেন্ট আলাদা করে পাওয়ার জন্য $elemMatch বা অগ리게েশন ($unwind) ব্যবহার করুন।

  1. জাভাস্ক্রিপ্ট অ্যারেতে এলিমেন্ট সার্চ করা

  2. মোবাইল ব্রাউজারে টেক্সট সার্চ করার উপায়

  3. Windows 10-এ ফাইল কন্টেন্ট দিয়ে যেকোনো ফাইল খুঁজে বের করুন: ধাপে ধাপে গাইড

  4. একাধিক পিডিএফ ডকুমেন্টে টেক্সট দক্ষতার সাথে খুঁজুন