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

MongoDB-এ ফার্স্টনেম এবং লাস্টনেম কম্বাইন করে খুঁজে বের করা

দুই ফিল্ড কম্বাইন করে খুঁজে বের করতে $concat এবং $eq ব্যবহার করে $redact স্টেজে শর্ত দিন। একটি কালেকশন তৈরি করুন:

> db.demo502.insertOne({"FirstName":"John","LastName":"Smith"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e875534987b6e0e9d18f56d") }
> db.demo502.insertOne({"FirstName":"David","LastName":"Miller"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e87553e987b6e0e9d18f56e") }
> db.demo502.insertOne({"FirstName":"John","LastName":"Doe"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e875543987b6e0e9d18f56f") }

find() দিয়ে ডকুমেন্ট দেখান:

> db.demo502.find();

আউটপুট:

{ "_id" : ObjectId("5e875534987b6e0e9d18f56d"), "FirstName" : "John", "LastName" : "Smith" }
{ "_id" : ObjectId("5e87553e987b6e0e9d18f56e"), "FirstName" : "David", "LastName" : "Miller" }
{ "_id" : ObjectId("5e875543987b6e0e9d18f56f"), "FirstName" : "John", "LastName" : "Doe" }

"John Doe" কম্বিনেশন খুঁজে বের করার অগরিগেশন কোয়েরি:

> db.demo502.aggregate([
    { "$redact": {
        "$cond": [
            { "$eq": [
                { "$concat": [ "$FirstName", " ", "$LastName" ] },
                "John Doe"
            ]},
            "$$KEEP",
            "$$PRUNE"
        ]
    }}
])

আউটপুট:

ব্যাখ্যা: $redact ডকুমেন্ট ট্রাভার্স করে শর্ত মেনে না চলা শাখা গুলো প্রুন (Prune) করে দেয়। $concat ফার্স্টনেম, স্পেস এবং লাস্টনেম জোড়ায়। $eq টার্গেট স্ট্রিংর সাথে মিলিয়ে $$KEEP বা $$PRUNE সিদ্ধান্ত নেয়। দ্রষ্টব্য: বড় ডেটাসেটে এটি পারফরম্যান্স ইস্যু তৈরি করতে পারে, ইন্ডেক্স ব্যবহার করা ভালো।

  1. MongoDB-এ সাব-ডকুমেন্টসে ফাইন্ড কোয়েরি চালানো

  2. MongoDB-এ নির্দিষ্ট FirstName এবং LastName সম্বয় ডকুমেন্ট খোঁজা ($and + $in)

  3. MongoDB-তে নেস্টেড ডকুমেন্ট খোঁজা (Dot Notation)

  4. MongoDB-তে অ্যাগ্রিগেশন দিয়ে ডISTINCT সিলেক্ট এবং কাউন্ট করা