2012-04-24 3 views
0

Mongoid 또는 MongoMapper와 같은 ORM 래퍼없이 루비 드라이버를 사용하여 mongodb에 경계 상자 지오 코더를 발행하는 방법을 알아 내려고합니다.MongoDB Ruby Bound ORM이없는 쿼리

거의 명령을 실행할 수 있지만 아무런 문제가 없지만 내에서 찾을 수있는 구문을 파악할 수 없습니다.

box = [[34.05,-118.24],[35.80,116.44]] 
coll = db.command({'within' => "sites", 'box' => box} 

또는

: 나는 반경

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 

내에서 조회하려는하지만 바로 내에서의 쿼리를 얻기에 난처한 해요 경우

그래서이 작품 매력

db['my_sites'] 
coll = db.find({"box" => box}) 

mongo 클라이언트에서 직접 쿼리를 실행할 수 있지만 루비 드라이버 구문을 이해하기가 어려워졌습니다. .

답변

0

AFAIK는 MongoDB의 쉘 버전은 다음과 같을 것이다 :

db['my_sites'].find(:loc => { :$within => { :$box => box } }) 

그렇게하지 : 나는 당신이 원하는 생각 때문에

db.my_sites.find(loc: { $within: { $box: box } }) 

는 낮은 수준의 루비 인터페이스는 일반적으로 자바 스크립트 인터페이스 거울 지리적으로 유용한 컬렉션을 준비해 두었다가 확실히 테스트 할 수는 없습니다.