Ich versuche eine Near-Abfrage mit einem MaxDistance in einem MongoMapper-Modell zu kapseln.MongoMapper in der Nähe von MaxDistance - Mongo :: OperationFailure: Geo-Werte müssen Zahlen sein:
Ich muss etwas Dummes in meiner Abfrage-Syntax tun.
Modell
class Site
include MongoMapper::Document
key :id, Integer
key :name, String
key :location, Array
ensure_index [[:location, '2d']]
def self.nearest(center_point, range)
where(:location => {'$near' => center_point, '$maxDistance' => range}).all
end
end
Der Versuch, alles im Umkreis von 200 Meilen von einem Punkt zu kommen ...
Site.nearest ([- 122.0,44.0], 200)
> Mongo::OperationFailure: geo values have to be numbers: {
> $maxDistance: 200, $near: [ -122.0, 44.0 ] } from
> /Library/Ruby/Gems/1.8/gems/mongo-1.6.1/lib/mongo/cursor.rb:144:in
> `next' from
> /Library/Ruby/Gems/1.8/gems/mongo-1.6.1/lib/mongo/cursor.rb:290:in
> `each' from
> /Library/Ruby/Gems/1.8/gems/mongo-1.6.1/lib/mongo/cursor.rb:308:in
> `to_a' from
> /Library/Ruby/Gems/1.8/gems/mongo-1.6.1/lib/mongo/cursor.rb:308:in
> `to_a' from
> /Library/Ruby/Gems/1.8/gems/plucky-0.4.4/lib/plucky/query.rb:74:in
> `all' from /Users/nick/Code/web/map/app/models/site.rb:40:in
> `nearest' from (irb):
Dieser Fix arbeitete auch für mich. Danke, dass du mir etwas Zeit für diese Sache gespart hast. – Alice