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

रेल में मोंगोइड के साथ मोंगोडीबी - भू-स्थानिक अनुक्रमण

आप भू-अनुक्रमणिका को इस तरह से मोंगोइड में परिभाषित कर सकते हैं

class Item
  include Mongoid::Document

  field :loc, :type => Array

  index(
      [
          [:loc, Mongo::GEO2D]             
      ], background: true

  )
end

और प्रश्नों के लिए

$निकट कमांड (बिना मैक्सडिस्टेंस के)

 location = [80.24958300000003, 13.060422]
 items = Item.where(:loc => {"$near" => location})

$निकट कमांड (मैक्सडिस्टेंस के साथ)

 distance = 10 #km
 location = [80.24958300000003, 13.060422]
 items = Item.where(:loc => {"$near" => location , '$maxDistance' => distance.fdiv(111.12)})

किमी का उपयोग करते समय दूरी को 111.12 (एक डिग्री लगभग 111.12 किलोमीटर) में बदलें, या डिग्री का उपयोग करने पर दूरी छोड़ दें

$centerSphere / $nearSphere प्रश्न

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]}})

यह आपको दिए गए बाउंडिंग बॉक्स में आइटम खोजने में मदद करेगा।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. संगीतकार के साथ symfony2 में mongodb सिद्धांत स्थापित नहीं कर सकता

  2. 5 मिलियन से अधिक रिकॉर्ड के लिए MongoDB क्वेरी प्रदर्शन

  3. पारंपरिक आईडी के साथ उल्का संग्रह अद्यतन

  4. MongoDB $text search में कैसे करें और नहीं

  5. BsonSerializationException एक शब्दकोश को क्रमबद्ध करते समय <डेटटाइम, टी> बीएसओएन को