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

MongoDB-এ NOR কোয়ারী ব্যবহার করে নির্দিষ্ট ডকুমেন্ট বাদ দিয়ে ফেচ করা

MongoDB-এ নির্দিষ্ট শর্তাবলী নয় এমন ডকুমেন্ট ফেচ করতে $nor অপারেটর ব্যবহার করা হয়। এটি $or-এর বিপরীত কাজ করে - সব শর্ত মিথ্যা হলে ডকুমেন্ট রিটার্ন করে।

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

> db.demo100.insertOne({"Name":"Chris","Age":21});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d9624b8903cdd865577c0") }
> db.demo100.insertOne({"Name":"David","Age":23});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d962cb8903cdd865577c1") }
> db.demo100.insertOne({"Name":"Bob","Age":19});
{ "acknowledged" : true, "insertedId" : ObjectId("5e2d9634b8903cdd865577c2") }

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

> db.demo100.find();

আউটপুট:

{ "_id" : ObjectId("5e2d9624b8903cdd865577c0"), "Name" : "Chris", "Age" : 21 }
{ "_id" : ObjectId("5e2d962cb8903cdd865577c1"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5e2d9634b8903cdd865577c2"), "Name" : "Bob", "Age" : 19 }

NOR কোয়ারী বাস্তবায়ন

$nor এ্যারেতে ৪টি শর্ত দেওয়া হয়েছে - যেকোনো একটি সত্য হলে ডকুমেন্ট বাদ যাবে:

> db.demo100.find({
...   $nor: [
...     { Name: "Chris" },
...     { Name: { $exists: false } },
...     { Age: 21 },
...     { Age: { $exists: false } }
...   ]
... });

ফলাফল

{ "_id" : ObjectId("5e2d962cb8903cdd865577c1"), "Name" : "David", "Age" : 23 }
{ "_id" : ObjectId("5e2d9634b8903cdd865577c2"), "Name" : "Bob", "Age" : 19 }

ব্যাখ্যা - কোন ডকুমেন্ট বাদ পড়েছে এবং কেন:

ডকুমেন্টName: ChrisName missingAge: 21Age missing$nor ফলাফল
Chris, 21True ✓FalseTrue ✓Falseবাদ (২টি শর্ত সত্য)
David, 23FalseFalseFalseFalseরাখা (সব মিথ্যা)
Bob, 19FalseFalseFalseFalseরাখা (সব মিথ্যা)

গুরুত্বপূর্ণ: $nor শুধু তখনই ডকুমেন্ট রিটার্ন করে যখন সব শর্ত মিথ্যা (false) হয়। উপরের উদাহরণে "David" এবং "Bob" - যেকোনো শর্ত তাদের জন্য সত্য নয়।

ব্যবহার ক্ষেত্র: ব্ল্যাকলিস্ট ফিল্টারিং, এক্সক্লুশন লজিক, "এই শর্তগুলো 제외한 সব" টাইপ কোয়ারী।

তুলনা: $not একক এক্সপ্রেশনের 네가েশন, $nor একাধিক শর্তের NOR লজিক।

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

  2. MongoDB-তে এমবেডেড ডকুমেন্ট কোয়েরি করা (aggregate + $unwind)

  3. MongoDB-তে $in অপারেটর ব্যবহার করে নির্দিষ্ট একাধিক ডকুমেন্ট বের করা

  4. MongoDB-এ অ্যারে কোয়েরি করে নির্দিষ্ট ভ্যালু ফেচ করা