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

MongoDB-এ findById-র পরিবর্তে findOne() ব্যবহার করে একক ডকুমেন্ট পাওয়া


MongoDB-এ findOne() ব্যবহার করে নির্দিষ্ট ID-র ডকুমেন্ট বের করা

MongoDB-এ findById() একটি মongoose (ODM) মেথড, নেটিভ MongoDB শেল মেথড নয়। নেটিভ শেলে একক ডকুমেন্ট বের করতে findOne() ব্যবহার করা হয়, যা ফিল্টার ম্যাচ করা প্রথম ডকুমেন্টটি ফেরত দেয়।

১. কালেকশন ও কাস্টম _id সহ ডকুমেন্ট তৈরি

> db.demo340.insertOne({_id:1,"Name":"Chris",Age:21});
{ "acknowledged" : true, "insertedId" : 1 }
> db.demo340.insertOne({_id:2,"Name":"David",Age:23});
{ "acknowledged" : true, "insertedId" : 2 }
> db.demo340.insertOne({_id:3,"Name":"Bob",Age:20});
{ "acknowledged" : true, "insertedId" : 3 }
> db.demo340.insertOne({_id:4,"Name":"Sam",Age:19});
{ "acknowledged" : true, "insertedId" : 4 }

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

> db.demo340.find();

আউটপুট:

{ "_id" : 1, "Name" : "Chris", "Age" : 21 }
{ "_id" : 2, "Name" : "David", "Age" : 23 }
{ "_id" : 3, "Name" : "Bob", "Age" : 20 }
{ "_id" : 4, "Name" : "Sam", "Age" : 19 }

৩. findOne() দিয়ে _id: 1 वाले ডকুমেন্ট বের করা

> db.demo340.findOne({_id:1});

৪. ফলাফল

{ "_id" : 1, "Name" : "Chris", "Age" : 21 }

মূল পার্থক্য:

  • find() - কার্সর (Cursor) রিটার্ন করে, সব ম্যাচিং ডকুমেন্ট ইটারেট করতে পারে।
  • findOne() - সরাসরি একটি ডকুমেন্ট (Object) রিটার্ন করে (নালও হতে পারে)।
  • find({_id:1}).limit(1) - এটি কার্সর রিটার্ন করে, ডকুমেন্ট নয়।

সুপারিশ: নেটিভ MongoDB শেল বা ড্রাইভারে একক ডকুমেন্টের জন্য সবসময় findOne() ব্যবহার করুন।


  1. MongoDB-এ নির্দিষ্ট ডকুমেন্টের ফিল্ড ইনক্রিমেন্ট করা ($inc অপারেটর)

  2. MongoDB-তে findOne() ব্যবহার করে একক ডকুমেন্ট রিট্রিভ করা

  3. MongoDB 4-এ ডকুমেন্ট সর্ট করে শুধু একটি ফিল্ড দেখানো

  4. MongoDB ডকুমেন্টের সর্বোচ্চ সাইজ কত?