2017-04-24 8 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} 
       } 
     }) 

私が使用しているLAT = 0とlng = 0をパラメータとする。私は、ダミーのドキュメントが返されるようにしたいが、私はただNoneを取得する。私は何を間違えたのですか?

ありがとうございました。

答えて

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

関連する問題