यह अध्याय MongoDB के जियोस्पेशियल क्वेरी फंक्शनों में से एक को पेश करता है, जिसका उपयोग दूरी के आधार पर दस्तावेज़ डेटा क्वेरी करने के लिए किया जाता है।

अनुप्रयोग स्थिति: आसपास के दुकानों की खोज और निकटवर्ती व्यक्तियों का पता लगाना।

पूर्वापेक्षित ट्यूटोरियल

MongoDB जियोस्पेशियल डेटा स्टोरेज फॉर्मेट

दूरी के आधार पर डेटा क्वेरी करने की पूर्व-आवश्यकताएँ निम्नलिखित हैं:

  • प्रत्येक दस्तावेज़ डेटा में निर्देशांक डेटा स्टोर करने वाला फ़ील्ड होता है, उदाहरण के लिए: location फ़ील्ड एक दुकान के निर्देशांक स्टोर करता है।
  • 2dsphere या 2d स्थानिक सूची बनाएँ।

$near ऑपरेटर

MongoDB दूरी के आधार पर दस्तावेज़ डेटा क्वेरी करने के लिए $near ऑपरेटर का उपयोग करता है।

फ़ॉर्मैट:

{
   <location field>: { // निर्देशांक डेटा स्टोर करने वाला फ़ील्ड
     $near: {
       $geometry: { // तुलना के लिए संदर्भ निर्देशांक सेट करें
          type: "Point" ,
          coordinates: [ देशान्तर , अक्षांश ]
       },
       $maxDistance: मानचित्र में अधिकतम दूरी, मीटर में,
       $minDistance: मानचित्र में न्यूनतम दूरी, मीटर में
     }
   }
}

ध्यान दें: $near क्वेरी द्वारा वापस आने वाले डेटा को सबसे निकट से दूर तक क्रमबद्ध किया जाता है।

उदाहरण

मान लीजिए shop संग्रह निर्देशांक हर दुकान के निर्देशांक स्टोर करता है। निम्नलिखित क्वेरी मेरे पास सबसे निकटीय दुकान ढूंढता है (न्यूनतम दूरी 1000 मीटर, अधिकतम दूरी 5000 मीटर)।

db.shop.find(
   {
     location:
       { $near :
          {
            $geometry: { type: "Point",  coordinates: [ -73.9667, 40.78 ] }, // मेरे निर्देशांक
            $minDistance: 1000, // न्यूनतम दूरी
            $maxDistance: 5000 // अधिकतम दूरी
          }
       }
   }
)