2017-04-24 3 views
0

I가 몽고에서 다음 문서 :Pymongo 쿼리

{ 
    'Name': 'Dummy', 
    'North-East-Bound': { 
     'lat': 0, 
     'lng': 0 
    }, 
    'South-West-Bound': { 
     'lat': 0, 
     'lng': 0 
    } 
} 

나는 다음과 같은 쿼리를하고 있어요 : 분명히

result = self.coll.find_one({ 
      'North-East-Bound': 
       {'lat': {'$gte': lat}, 
       'lng': {'$gte': lng} 
       }, 
      'South-West-Bound': 
       {'lat': {'$lte': lat}, 
       'lng': {'$lte': lng} 
       } 
     }) 

내가 사용 위도 = 0 및 lng = 0을 매개 변수로 사용합니다. 더미 문서를 반환하고 싶지만 아무 것도 얻지 못합니다. 나는 무엇을 잘못 했는가?

감사합니다.

답변

0

도트 표기법을 사용하여 포함 된 문서의 필드에 대한 쿼리를 실행해야합니다.

find_one({ 
     'North-East-Bound.lat': { 
      '$gte': lat 
     }, 
     'North-East-Bound.lng': { 
      '$gte': lng 
     }, 
     'South-West-Bound.lat': { 
      '$lte': lat 
     }, 
     'South-West-Bound.lng': { 
      '$lte': lng 
     } 
    }) 

등가 비교를 위해 작동합니다. 이것은 임베디드 문서 레벨 비교입니다. 여기

find_one({ 
    'North-East-Bound': { 
     'lat': 0, 
     'lng': 0 
    }, 
    'South-West-Bound': { 
     'lat': 0, 
     'lng': 0 
    } 
}) 

https://docs.mongodb.com/manual/core/document/#dot-notation

https://docs.mongodb.com/manual/tutorial/query-embedded-documents/#query-on-nested-field