|
|
@@ -0,0 +1,26 @@ |
|
|
|
class Post |
|
|
|
include MongoMapper::Document |
|
|
|
|
|
|
|
key :title, String |
|
|
|
key :url, String |
|
|
|
key :author, String |
|
|
|
key :summary, String |
|
|
|
key :content, String |
|
|
|
key :published, Time |
|
|
|
key :loc, Hash # { lng, lat } |
|
|
|
timestamps! |
|
|
|
|
|
|
|
ensure_index [[:loc, '2d']] |
|
|
|
|
|
|
|
belongs_to :feed |
|
|
|
|
|
|
|
EARTH_RADIUS_M = 6378000 |
|
|
|
|
|
|
|
def self.near(lat, lng, radius_m) |
|
|
|
all( |
|
|
|
:loc => { |
|
|
|
'$nearSphere' => [ lng, lat ], |
|
|
|
'$maxDistance' => radius_m / EARTH_RADIUS_M |
|
|
|
}) |
|
|
|
end |
|
|
|
end |