এই অধ্যায়টি একটি 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 // সর্বাধিক দূরত্ব
}
}
}
)