मैं mongodb में कुछ भौगोलिक स्थान कार्यक्षमता का उपयोग करने की कोशिश कर रहा हूं। $ के साथ एक खोज क्वेरी का उपयोग करना प्रतीत नहीं होता है!
{
"Username": "Deano",
"_id": {
"$oid": "533f0b722ad3a8d39b6213c3"
},
"location": {
"type": "Point",
"coordinates": [
51.50998,
-0.1337
]
}
}
मैं निम्नलिखित सूचकांक के रूप में अच्छी तरह से स्थापित किया है::
मैं वर्तमान में मेरे डेटाबेस में इस वस्तु है
{
"v": 1,
"key": {
"location": "2dsphere"
},
"ns": "heroku_app23672911.catchmerequests",
"name": "location_2dsphere",
"background": true
}
जब मैं इस क्वेरी चलाएँ:
db.collectionname.find({ "location" : { $near : [50.0 , -0.1330] , $maxDistance : 10000 }})
मुझे यह त्रुटि मिलती है:
error: {
"$err" : "can't parse query (2dsphere): { $near: [ 50.0, -0.133 ], $maxDistance: 10000.0 }",
"code" : 16535
}
क्या कोई जानता है कि मैं कहां गलत हो रहा हूं? कोई भी सहायताकाफी प्रशंसनीय होगी!
अरे, मैं वास्तव में अधिकतमडिस्टेंस पर ध्यान दिए बिना पहले निकटतम स्थान की खोज करने की कोशिश कर रहा हूं। यह काम करता है लेकिन इसमें 4 सेकंड लगते हैं, यह वास्तव में धीमा है। प्रदर्शन बढ़ाने का एक तरीका है? – John
@ जॉन। मुझे आपके द्वारा प्रदान की गई जानकारी से नहीं पता है, लेकिन अधिकतम डिस्टेंस छोड़ने का अर्थ है पूरे डीबी को खोजना, जो आकार के आधार पर, बहुत लंबा समय ले सकता है। –
'$ पास के पास 'निकटतम से सबसे दूर तक दाएं? फिर मैं सीमा() का उपयोग कर रहा हूँ। मेरे डेटाबेस में मेरा स्थान इस तरह दिखता है: '[-5.95001220703125,46.149993896484375] 'इसलिए जब मैं' -5, -46] भेजता हूं तो इसमें 2 - 3 सेकंड लगेंगे। लेकिन अगर मैं यह स्थान भेजता हूं E.g '[-5.953801, 46.001843] 'यह वास्तव में तेज़ है। मुझे परिणाम केवल '22ms' में मिलता है। तो यह सामान्य है? – John