diff --git a/app/models/post.rb b/app/models/post.rb index 50cf3db..59d1055 100644 --- a/app/models/post.rb +++ b/app/models/post.rb @@ -10,5 +10,17 @@ class Post key :loc, Hash # { lng, lat } timestamps! + ensure_index [[:loc, '2d']] + belongs_to :feed + + EARTH_RADIUS_KM = 6378.0 + + def self.near(lat, lng, radius_km) + all( + :loc => { + '$nearSphere' => [ lng, lat ], + '$maxDistance' => radius_km / EARTH_RADIUS_KM + }) + end end