मोंगोडीबी का बहुत अच्छा Geospatial Indexing सुविधा है। मैं इसे Mongoid के साथ रेल में कैसे उपयोग कर सकता हूं?रेल में मोंगोइड के साथ मोंगोडीबी - भू-स्थानिक सूचकांक
उत्तर
आप भू अनुक्रमित इस तरह mongoid
class Item
include Mongoid::Document
field :loc, :type => Array
index(
[
[:loc, Mongo::GEO2D]
], background: true
)
end
में और प्रश्नों
$ आदेश (maxDistance बिना)
location = [80.24958300000003, 13.060422]
items = Item.where(:loc => {"$near" => location})
$ के पास आदेश के पास के लिए (के साथ परिभाषित कर सकते हैं maxDistance)
.12 द्वाराdistance = 10 #km
location = [80.24958300000003, 13.060422]
items = Item.where(:loc => {"$near" => location , '$maxDistance' => distance.fdiv(111.12)})
Convert दूरी जब किमी का उपयोग कर, या दूरी छोड़ के रूप में यह डिग्री
का उपयोग कर$ centerSphere/$ nearSphere पर है (एक डिग्री लगभग 111.12 किलोमीटर की दूरी पर है) प्रश्नों
location = [80.24958300000003, 13.060422]
items = Item.where(:loc => {"$within" => {"$centerSphere" => [location, (distance.fdiv(6371))]}})
यह वस्तुओं को 10 किमी त्रिज्या के भीतर मिल जाएगा। यहां हमें किमी/किमी के साथ काम करने के लिए दूरी/6371 (पृथ्वी त्रिज्या) को बदलने की जरूरत है।
$ बॉक्स (बाउंडिंग बॉक्स प्रश्नों)
first_loc = [80.24958300000003, 13.060422]
second_loc = [81.24958300000003, 12.060422]
items = Item.where(:loc => {"$within" => {"$box" => [first_loc, second_loc]}})
यह दिया बाउंडिंग बॉक्स के भीतर आइटम खोजने के लिए आप में मदद मिलेगी।
रमेशवेल का जवाब बहुत अच्छा है।
index(
{ loc: Mongo::GEO2D },
{ background: true }
)
वास्तव में यह मेरे लिए 'मोंगोइड 3.0.0' के साथ काम नहीं करता है, दस्तावेज निम्नलिखित प्रारूप' सूचकांक ({loc: "2d"}, {min: -200, अधिकतम: 200}) इंगित करता है। चीयर्स। – rjgonzo
सभी उन जवाब MongoDB के नवीनतम संस्करण के साथ एक पुराने हो गए हैं और फेंक देगा:
एक अद्यतन के रूप में, Mongoid 3.0.4 में, मैं के रूप में यह rake db:mongoid:create_indexes
साथ काम करने के लिए इस प्रकार सूचकांक को परिभाषित करने के लिए किया था कुछ uninitialized constant Mongo::GEO2D
mongoid 4/5 के लिए, मैं सुझाव है कि आप mongoid-geospatial gem पर नजर है आप 2 डी ऑब्जेक्ट्स या निर्देशांक के साथ खेलने की जरूरत है।
- 1. मोंगोइड, हेरोकू, डिवाइस, मोंगोएचक्यू और रेल के साथ मोंगोडीबी त्रुटि
- 2. मोंगोडीबी और मोंगोइड
- 3. उत्पादन में मोंगोडीबी और मोंगोइड
- 4. रेल और मोंगोइड
- 5. मोंगोइड और रेल के साथ फील्ड उपनाम
- 6. मोंगोइड
- 7. मोंगोइड
- 8. मोंगोइड
- 9. मोंगोइड
- 10. विरासत संसाधन और मोंगोइड
- 11. सूचकांक कब, Mongoid में क्या सूचकांक करना है?
- 12. मोंगोइड
- 13. मोंगोइड
- 14. मोंगोइड
- 15. मोंगोइड
- 16. मोंगोइड रेल बनाने के बाद सत्यापन को छोड़ दें
- 17. मोंगोडीबी
- 18. रेल "प्रत्येक" पाश के सूचकांक प्राप्त
- 19. मोंगोडीबी में पृष्ठभूमि सूचकांक की बजाय मानक सूचकांक का उपयोग करने के लिए कब प्राथमिकता दी जाती है?
- 20. मोंगोडीबी
- 21. मोंगोडीबी बनाम MySQL
- 22. कैरियरवेव और मोंगोइड
- 23. एचएबीटीएम मोंगोइड निम्नलिखित/अनुयायी
- 24. AddToSet के साथ अद्यतन मोंगोडीबी सी #
- 25. मोंगोडीबी/पायमोंगो के साथ कई साथ-साथ अपडेट?
- 26. मोंगोडीबी के साथ रिपोजिटरी पैटर्न: डेटाबेस
- 27. सूचकांक
- 28. भू-स्थानिक प्रश्नों के साथ मोंगोडीबी $ और ऑपरेटर
- 29. रेलवे मोंगोइड मानदंड एसोसिएशन
- 30. मोंगोइड या क्वेरी सिंटैक्स
(maxDistance के साथ) जब मैं $ आदेश के पास का उपयोग करने की यह एक त्रुटि देता है: {$ maxDistance: .001799856011519079, $ के पास: [80.249, १३.०,६०,४२२]} भू मूल्यों संख्या होना जरूरी किसी भी विचार? यह जगह पर "करीब $" के साथ काम करता है, लेकिन जब मैं "$ maxDistance" जोड़ता हूं, तो यह चोक करता है। – Vasily
@ वैसे, मुझे यकीन नहीं है .. $ maxdistance के साथ $ निकटतम क्वेरी आपके द्वारा निर्दिष्ट मानों के साथ पूरी तरह से ठीक काम करती है। 'Item.where (: loc => {" $ near "=> [80.249, 13.060422], '$ maxDistance' => 0.001799856011519079})'। यह ठीक काम करता है .. हो सकता है कि आप मुझे वह प्रश्न दिखा सकें जो आप कोशिश कर रहे थे? हम तब देखेंगे – RameshVel
जब मैं maxDistance का उपयोग करता हूं तो मुझे एक ही त्रुटि मिलती है। रुबी 1.8। क्या आपको लोगों को समाधान मिला? –