এই অধ্যায়টি একটি MongoDB এর ভৌগোলিক প্রশ্ন ফাংশন নিয়ে , যা দূরত্বের ভিত্তিতে ডকুমেন্ট ডেটা অনুসন্ধান করা।

অ্যাপ্লিকেশন স্কেনারিও: আশেপাশের দোকান অনুসন্ধান, এবং আশেপাশের মানুষ খোঁজার জন্য।

আগের টিউটোরিয়াল

MongoDB ভৌগোলিক ডেটা সংরক্ষণের ফরম্যাট

দূরত্বের ভিত্তিতে ডেটা অনুসন্ধানের প্রারেক্ষিত হল:

  • প্রতিটি ডকুমেন্ট ডেটা যেভাবে কো-অর্ডিনেট ডেটা সংরক্ষণ করে, যেমন: location ফিল্ডে একটি দোকানের কো-অর্ডিনেট সংরক্ষণ করে।
  • একটি 2dsphere বা 2d স্থানিক সূচক তৈরি করুন।

$near অপারেটর

MongoDB দূরত্বের ভিত্তিতে ডেটা অনুসন্ধানের জন্য $near অপারেটরটি ব্যবহার করে।

ফরম্যাট:

{
   <location field>: { // যে ফিল্ড যেখানে কো-অর্ডিনেট ডেটা সংরক্ষণ করা হয়
     $near: {
       $geometry: { // তৈরি করুন তুলনার জন্য রেফারেন্স কো-অর্ডিনেট
         type: "Point",
         coordinates: [দ্রাঘিমাংশ, অক্ষাংশ]
       },
       $maxDistance: সর্বাধিক দূরত্ব, মিটারে,
       $minDistance: সর্বনিম্ন দূরত্ব, মিটারে
     }
   }
}

নোট: $near অনুসন্ধান দ্বারা প্রেরিত ডেটা সর্বাধিক থেকে দরকার।

উদাহরণ

মনে করুন আমার কাছে shop কলেকশন স্টোর স্টোর ডেটা সংরক্ষণ করে, যেখানে প্রতিটি দোকানের কো-অর্ডিনেট location ফিল্ড সংরক্ষণ করে। নিম্নলিখিত অনুসন্ধানটি আমাকে আমার কাছে সর্বাধিক দোকান খুঁজে (ন্যূনতম দূরত্ব 1000 মিটার, সর্বাধিক দূরত্ব 5000 মিটার)।

db.shop.find(
   {
     location:
       { $near :
         {
           $geometry: { প্রকার: "পয়েন্ট", সংযোজন: [-73.9667, 40.78] }, // আমার কো-অর্ডিনেট
           $minDistance: 1000, // সর্বনিম্ন দূরত্ব
           $maxDistance: 5000 // সর্বাধিক দূরত্ব
         }
       }
   }
)