MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB GeoNear परिणामों को दूरी के अलावा किसी अन्य चीज़ से क्रमबद्ध करना?

अगर आप $near . का उपयोग कर रहे हैं कमांड तो आपको पहले दूरी के आधार पर छाँटना होगा या "निकट" की अवधारणा का वास्तव में कोई मतलब नहीं है। ग्लोब पर सब कुछ एक निश्चित बिंदु पर "निकट" हो सकता है, यह केवल "कितना निकट" का मुद्दा है।

आपके पास यहां दो विकल्प हैं:

  1. $nearके परिणामों को सीमित करें
  2. $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 . का मान कमांड आमतौर पर गिरना शुरू हो जाता है। आपका क्लाइंट कोड यह जांचना चाहेगा कि क्या आप अधिकतम परिणाम प्राप्त कर रहे हैं।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. एकाधिक फ़ील्ड पर MongoDB अद्वितीय अनुक्रमणिका

  2. Laravel ऐप xampp या लाइव सर्वर पर नहीं चल रहा है लेकिन PHP कारीगर सर्व पर अच्छा काम करता है

  3. MongoDB में नेस्टेड डेटा संरचना को पार करने के लिए $graphLookup का उपयोग करना

  4. देश के अनुसार फ़िल्टर करें और नेवला का उपयोग करके मुफ्त टेक्स्ट सर्च मोंगोडब

  5. mongodb php ड्राइवर को अनइंस्टॉल करें और एक अलग संस्करण स्थापित करें