MongoDB-এ findOne() মেথড শুধু একটি ডকুমেন্ট রিটার্ন করে (শর্ত পূরণ করা প্রথম ডকুমেন্ট)। এটি find().limit(1)-এর সমতুল্য কিন্তু সরাসরি ডকুমেন্ট অবজেক্ট রিটার্ন করে, কার্সর নয়।
নমুনা কালেকশন তৈরি
> db.demo230.insertOne({ "FirstName": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc4d2f4cebbeaebec513e") }
> db.demo230.insertOne({ "FirstName": "Bob" });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc4d5f4cebbeaebec513f") }
> db.demo230.insertOne({ "FirstName": "Chris" });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc4dbf4cebbeaebec5140") }
> db.demo230.insertOne({ "FirstName": "David" });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc4dff4cebbeaebec5141") }
> db.demo230.insertOne({ "FirstName": "David" });
{ "acknowledged": true, "insertedId": ObjectId("5e3fc4e1f4cebbeaebec5142") }
সমস্ত ডকুমেন্ট দেখানো
>> db.demo230.find();
আউটপুট:
{ "_id": ObjectId("5e3fc4d2f4cebbeaebec513e"), "FirstName": "Chris" }
{ "_id": ObjectId("5e3fc4d5f4cebbeaebec513f"), "FirstName": "Bob" }
{ "_id": ObjectId("5e3fc4dbf4cebbeaebec5140"), "FirstName": "Chris" }
{ "_id": ObjectId("5e3fc4dff4cebbeaebec5141"), "FirstName": "David" }
{ "_id": ObjectId("5e3fc4e1f4cebbeaebec5142"), "FirstName": "David" }
findOne() ব্যবহার
> db.demo230.findOne({ "FirstName": "David" });
ফলাফল
{ "_id": ObjectId("5e3fc4dff4cebbeaebec5141"), "FirstName": "David" }
ব্যাখ্যা:
- দুটি "David" রেকর্ড থাকা সত্ত্বেও
findOne()শুধু প্রথমটি রিটার্ন করেছে (ইনসার্ট অর্ডার অনুযায়ী)। - যদি কোনো ডকুমেন্ট না মিলে, তবে
nullরিটার্ন করে। - প্রজেকশনও ব্যবহার করা যায়:
findOne({ FirstName: "David" }, { _id: 0, FirstName: 1 })
find() vs findOne()
| বৈশিষ্ট্য | find() | findOne() |
|---|---|---|
| রিটার্ন টাইপ | Cursor | Document / null |
| ডকুমেন্ট সংখ্যা | সব মিলে যাওয়া | শুধু ১টি (প্রথম) |
| ইটারেশন | .forEach(), .toArray() | প্রয়োজন নেই |
| পারফরম্যান্স | লিমিট না দিলে ধীর | অপ্টিমাইজড (লিমিট ১) |
ব্যবহারিক উদাহরণ: একক ডকুমেন্ট ফেচ
const user = db.users.findOne({ email: "user@example.com" });
if (user) {
console.log("User found:", user.name);
} else {
console.log("User not found");
}