अगर आप $near
. का उपयोग कर रहे हैं कमांड तो आपको पहले दूरी के आधार पर छाँटना होगा या "निकट" की अवधारणा का वास्तव में कोई मतलब नहीं है। ग्लोब पर सब कुछ एक निश्चित बिंदु पर "निकट" हो सकता है, यह केवल "कितना निकट" का मुद्दा है।
आपके पास यहां दो विकल्प हैं:
$near
के परिणामों को सीमित करें$within
का उपयोग करें आदेश
मुझे लगता है कि आप जो खोज रहे हैं वह $within
है आदेश
center = [50, 50]
radius = 10
db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
फिर आप इन्हें किसी अन्य कुंजी द्वारा क्रमबद्ध कर सकते हैं:
db.places.find(...).sort({created:1})
हालांकि, भीतर कमांड बहुत अधिक परिणाम प्रदान कर सकता है, इसलिए आप शायद $within
द्वारा लौटाए गए आइटमों की संख्या को सीमित करने के लिए कुछ तर्क रखना चाहते हैं। ।
db.places.find(...).limit(50).sort({created:1})
सच तो यह है, यदि आप एक विशिष्ट सीमा तक पहुँच जाते हैं, तो आपके $within
. का मान कमांड आमतौर पर गिरना शुरू हो जाता है। आपका क्लाइंट कोड यह जांचना चाहेगा कि क्या आप अधिकतम परिणाम प्राप्त कर रहे हैं।