MongoidやMongoMapperなどのORMラッパーなしでrubyドライバーを使用してmongodbにバウンディングボックスジオクエリを発行する方法を理解しようとしています。
nearコマンドは問題なく実行できますが、withinを含む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ドライバーの構文を理解するのにつまずきました。