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

MongoDB-এ $exists ব্যবহার করে ডকুমেন্ট/এম্বেডেড ডকুমেন্টের অস্তিত্ব চেক করা


MongoDB-এ $exists অপারেটর দিয়ে ফিল্ড বা নেস্টেড ফিল্ড আছে কিনা যাচাই করা

MongoDB-এ একটি ফিল্ড বা নেস্টেড ফিল্ড ডকুমেন্টে আছে কিনা চেক করার জন্য $exists অপারেটর ব্যবহার করা হয়। এটি বুলিয়ান মান (true/false) গ্রহণ করে।

১. কালেকশন ও নমুনা ডেটা তৈরি (একটিতে Name আছে, অন্যটিতে নেই)

> db.demo322.insertOne({
  'id': 1001,
  'details': [{'Score': 10000, Name: "Bob"}, {'Score': 98000, Name: "Sam"}]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5113e2f8647eb59e56206c") }
> db.demo322.insertOne({
  'id': 10002,
  'details': [{'Score': 9000}, {'Score': 91000}]
});
{ "acknowledged" : true, "insertedId" : ObjectId("5e5113faf8647eb59e56206d") }

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

> db.demo322.find();

আউটপুট:

{ "_id" : ObjectId("5e5113e2f8647eb59e56206c"), "id" : 1001, "details" : [ { "Score" : 10000, "Name" : "Bob" }, { "Score" : 98000, "Name" : "Sam" } ] }
{ "_id" : ObjectId("5e5113faf8647eb59e56206d"), "id" : 10002, "details" : [ { "Score" : 9000 }, { "Score" : 91000 } ] }

দ্বিতীয় ডকুমেন্টের details অ্যারে-র এলিমেন্টগুলোর Name ফিল্ড নেই।

৩. $exists দিয়ে চেক করা (details.Name ফিল্ড আছে কিনা)

> db.demo322.find({"details.Name": { $exists: true }}).count() > 0;

৪. ফলাফল

True

ব্যাখ্যা:

  • {$exists: true} - ফিল্ডটি ডকুমেন্টে উপস্থিত থাকতে হবে (মান null হলে ও चले, ফিল্ড থাকলেই মনোয়)।
  • .count() > 0 - কয়েকটি ডকুমেন্ট আছে কিনা বুলিয়ান রিটার্ন করে।
  • প্রথম ডকুমেন্টে Name ফিল্ড আছে, তাই true ফেরত দিয়েছে।

বিপরীত: {$exists: false} দিয়ে ফিল্ড নেই এমন ডকুমেন্ট খুঁজে বের করা যায়।


  1. MongoDB-তে নেস্টেড এম্বেডেড ডকুমেন্ট আপডেট করা

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

  3. MongoDB-তে এমবেডেড ডকুমেন্ট অ্যারে কোয়েরি করে নতুন এলিমেন্ট যোগ করা ($push + $nin)

  4. MongoDB-এ অ্যারেতে ডুপ্লিকেট চেক করা