我试图弄清楚如何使用没有像 Mongoid 或 MongoMapper 这样的 ORM 包装器的 ruby 驱动程序向 mongodb 发出边界框地理查询。
我可以执行附近的命令没问题,但我似乎无法弄清楚 find with a inside 的语法。
所以如果我想在半径范围内查询,这就像一个魅力
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 驱动程序语法时被绊倒了。