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

MongoDB-এ র‍্যান্ডম ডকুমেন্ট সিলেক্ট করা ($sample)

MongoDB-এ র‍্যান্ডমলি ডকুমেন্ট সিলেক্ট করতে এগْرিগেশন পাইপলাইনে $sample স্টেজ ব্যবহার করা হয়।

ডেমো কলেকশন তৈরি (৬টি ডকুমেন্ট)


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

{ "_id" : ObjectId("5c9ec9aad628fa4220163b87"), "StudentId" : 10 } 
{ "_id" : ObjectId("5c9ec9add628fa4220163b88"), "StudentId" : 100 } 
{ "_id" : ObjectId("5c9ec9b0d628fa4220163b89"), "StudentId" : 45 } 
{ "_id" : ObjectId("5c9ec9b3d628fa4220163b8a"), "StudentId" : 55 } 
{ "_id" : ObjectId("5c9ec9b7d628fa4220163b8b"), "StudentId" : 5 } 
{ "_id" : ObjectId("5c9ec9bad628fa4220163b8c"), "StudentId" : 7 }

২টি র‍্যান্ডম ডকুমেন্ট পাওয়া (size: 2)

{ "_id" : ObjectId("5c9ec9b3d628fa4220163b8a"), "StudentId" : 55 } 
{ "_id" : ObjectId("5c9ec9aad628fa4220163b87"), "StudentId" : 10 }

আউটপুট (দ্বিতীয় রান - ভিন্ন ডকুমেন্ট)


$sample স্টেজের বৈশিষ্ট্য

  • রেজারভোয়ার স্যাম্পলিং অ্যালগরিদম ব্যবহার করে
  • প্রতিটি রানে ভিন্ন রেজাল্ট দেয় (র‍্যান্ডম)
  • size ফিল্ডে পাওয়া ডকুমেন্ট সংখ্যা নিদিষ্ট করুন
  • কলেকশন সাইজ ছোট হলে পুরো কালেকশন মেমরিতে লোড করে

সীমাবদ্ধতা

  • শার্ডেড কলেকশনে সঠিকভাবে কাজ নাও করতে পারে
  • ভিউ (view)-এ সরাসরি ব্যবহার করা যায় না
  • $match পরে ব্যবহার করলে পারফরম্যান্স কমে

সঠিক অর্ডার (ফিল্টার után স্যাম্পল)


বিকল্প:.skip() + .limit() (র‍্যান্ডম নয়)

 
            
  1. MongoDB কলেকশন কোয়েরি করা

  2. MongoDB-তে নির্দিষ্ট স্ট্রিং দিয়ে ডকুমেন্ট খুঁজে বের করা

  3. MongoDB-এ দুই লেভেল গভীর রেকর্ড খুঁজে বের করা

  4. MongoDB-তে সব ডকুমেন্টে নতুন ফিল্ড যোগ করা ($addFields)