【发布时间】:2012-04-24 01:25:33
【问题描述】:
我试图弄清楚如何使用 ruby 驱动程序向 mongodb 发出边界框地理查询,而无需像 Mongoid 或 MongoMapper 这样的 ORM 包装器。
我可以执行附近的命令没问题,但我似乎无法弄清楚带有 inside 的 find 的语法。
所以如果我想在半径范围内查询,这就像一个魅力
conn = Mongo::Connection.from_uri('my DB')
db = conn.db('my_sites')
coll = db.command({'geoNear' => "sites",
'near'=>[lng,lat],
'spherical' => true,
'maxDistance' => distance_in_radians,
'num' => limit})
render :json => coll['results'].to_a
但是我很难获得正确的查询:
box = [[34.05,-118.24],[35.80,116.44]]
coll = db.command({'within' => "sites", 'box' => box}
或
db['my_sites']
coll = db.find({"box" => box})
我可以直接在 mongo 客户端中发出查询,但我只是在理解 ruby 驱动程序语法时被绊倒了。
【问题讨论】:
标签: ruby mongodb geospatial