SQL-এ EXISTS সাবকোয়েরি ব্যবহার করে রেকর্ডের অস্তিত্ব চেক করা হয়। MongoDB-এ এর সমতুল্য হলো findOne() মেথড, যা শর্ত পূরণ করার প্রথম ডকুমেন্টটি রিটার্ন করে। যদি কোনো ডকুমেন্ট না মিলে, তবে null রিটার্ন করে।
নমুনা কালেকশন তৈরি
> db.existsAlternateDemo.insertOne({ "StudentName": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e06d23f9e4dae213890ac5c") }
> db.existsAlternateDemo.insertOne({ "StudentName": "Chris", "StudentAge": 21 });
{ "acknowledged": true, "insertedId": ObjectId("5e06d2559e4dae213890ac5d") }
> db.existsAlternateDemo.insertOne({ "StudentName": "Chris", "StudentAge": 22, "StudentCountryName": "US" });
{ "acknowledged": true, "insertedId": ObjectId("5e06d2689e4dae213890ac5e") }
সমস্ত ডকুমেন্ট প্রদর্শন
> db.existsAlternateDemo.find();
আউটপুট:
{ "_id": ObjectId("5e06d23f9e4dae213890ac5c"), "StudentName": "Chris" }
{ "_id": ObjectId("5e06d2559e4dae213890ac5d"), "StudentName": "Chris", "StudentAge": 21 }
{ "_id": ObjectId("5e06d2689e4dae213890ac5e"), "StudentName": "Chris", "StudentAge": 22, "StudentCountryName": "US" }
EXISTS-এর মত findOne() ব্যবহার
StudentCountryName: "US" থাকা ডকুমেন্ট আছে কিনা চেক করা:
> db.existsAlternateDemo.findOne({ "StudentCountryName": "US" });
ফলাফল
{
"_id": ObjectId("5e06d2689e4dae213890ac5e"),
"StudentName": "Chris",
"StudentAge": 22,
"StudentCountryName": "US"
}
ব্যাখ্যা: findOne() শর্ত পূরণ করা প্রথম ডকুমেন্টটি রিটার্ন করে। এটি SQL-এ EXISTS (SELECT 1 FROM ... WHERE ...)-এর মত কাজ করে - বুলিয়ান না রিটার্ন করে ডকুমেন্টই রিটার্ন করে। অস্তিত্ব চেক করতে শুধু != null চেক করলেই হবে।
শুধু অস্তিত্ব চেক (বুলিয়ান)
const exists = db.existsAlternateDemo.findOne({ "StudentCountryName": "US" }) !== null;
// true বা false
find() vs findOne()
find()- কার্সর রিটার্ন করে, সব মিলে যাওয়া ডকুমেন্ট পাওয়া যায়findOne()- সরাসরি ডকুমেন্ট বা null রিটার্ন করে, পারফরম্যান্সে ভালো (লিমিট ১)