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

MongoDB-এ অ্যারেতে নির্দিষ্ট মান থাকলে true, না থাকলে false ফিল্ড যোগ করা

MongoDB Aggregation Pipeline-এ $ifNull এবং $setIntersection ব্যবহার করে একটি অ্যারেতে নির্দিষ্ট মান (যেমন "David") আছে কিনা যাচাই করে, ফলাফল হিসেবে বুলিয়ান (true/false) ফিল্ড যোগ করা যায়। এটি NULL বা অনুপস্থিত ফিল্ড হ্যান্ডল করার জন্যও কার্যকর।

উদাহরণ: কালেকশন ও ডেটা তৈরি

> db.demo542.insertOne({"ListOfName":["Chris","David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8cabc6ef4dcbee04fbbc17") }
> db.demo542.insertOne({"ListOfName":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8cabc8ef4dcbee04fbbc18") }
> db.demo542.insertOne({"ListOfName":["David"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8cabd3ef4dcbee04fbbc19") }
> db.demo542.insertOne({"Name":"John"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e8cabdaef4dcbee04fbbc1a") }

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

> db.demo542.find();

আউটপুট:

{ "_id" : ObjectId("5e8cabc6ef4dcbee04fbbc17"), "ListOfName" : [ "Chris", "David" ] }
{ "_id" : ObjectId("5e8cabc8ef4dcbee04fbbc18"), "ListOfName" : null }
{ "_id" : ObjectId("5e8cabd3ef4dcbee04fbbc19"), "ListOfName" : [ "David" ] }
{ "_id" : ObjectId("5e8cabdaef4dcbee04fbbc1a"), "Name" : "John" }

Aggregation কোয়েরি: "David" আছে কিনা যাচাই করে matched ফিল্ড যোগ করা

> var id = "David";
> db.demo542.aggregate([
    {
      "$project": {
        "matched": {
          "$eq": [
            { "$size": {
                "$ifNull": [
                  { "$setIntersection": [ "$ListOfName", [id] ] },
                  []
                ]
            }},
            1
          ]
        }
      }
    }
])

কোয়েরির ব্যাখ্যা

  1. $setIntersection: [ "$ListOfName", [id] ] — ListOfName অ্যারেতে id ("David") আছে কিনা চেক করে। যদি থাকে, তবে সেটে "David" রिटার্ন করবে, না থাকলে খালি অ্যারে।
  2. $ifNull: [ ..., [] ] — যদি ListOfName null থাকে বা ফিল্ডটি অনুপস্থিত থাকে, তবে খালি অ্যারে [] রিটার্ন করবে।
  3. $size: ... — ফলাফলের সাইজ বের করবে (১ বা ০)।
  4. $eq: [ ..., 1 ] — যদি সাইজ ১ হয় (মানে "David" পাওয়া গেল), তবে true, অন্যথায় false।

আউটপুট

{ "_id" : ObjectId("5e8cabc6ef4dcbee04fbbc17"), "matched" : true }
{ "_id" : ObjectId("5e8cabc8ef4dcbee04fbbc18"), "matched" : false }
{ "_id" : ObjectId("5e8cabd3ef4dcbee04fbbc19"), "matched" : true }
{ "_id" : ObjectId("5e8cabdaef4dcbee04fbbc1a"), "matched" : false }

মূল পয়েন্টসমূহ

  • $ifNull NULL বা মিসিং ফিল্ড হ্যান্ডল করতে সাহায্য করে।
  • $setIntersection দুটি অ্যারোর কমন এলিমেন্ট বের করে।
  • এই প্যাটার্নটি যেকোনো অ্যারে ফিল্ডে নির্দিষ্ট মান খোঁজার জন্য ব্যবহার করা যায়।
  1. PHP অ্যারেতে true এবং false মান গণনা করা

  2. C#-এ BitArray-তে নির্দিষ্ট পজিশনে বিট সেট করা

  3. C#-এ BitArray-এর সকল বিটকে নির্দিষ্ট মান সেট করা

  4. জাভাতে বুলিয়ান অ্যারে ইনিশিয়ালাইজ করুন