2

Python で PyMongo を使用して、設定された半径内で Origin LatLon と Destination LatLon の両方に対して GeoSpatial クエリを実行し、最初の結果を出力しようとしています。以下にあるのは、私が思っていたものですが、エラーが発生します。これについての適切な方法は何ですか?

コード:

origin = [float(44.8697193), float(13.8414046)]
dest = [float(48.1367203), float(11.576754)]
query = db.collection.find({'origLatLng': {'$within': {'$center': [origin,.75]}}}, {'destLatLng': {'$within': {'$center': [dest,.75]}}})[0]
print query

エラー:

pymongo.errors.OperationFailure: database error: Unsupported projection option: $within

今、宛先なしで原点を検索すると、'$within'に関するエラーは発生しません。私は何を間違っていますか?

4

2 に答える 2

4

クエリ構文に問題があると思います。origLatLng実際には、 用と用の 2 つのクエリ ドキュメントがありますdestLatLng。これを行うつもりだと思います:

query = db.collection.find({'start': {'$within': {'$center': [origin,.75]}}, 'end': {'$within': {'$center': [dest,.75]}}})[0]

2 番目のクエリ ドキュメントは射影を行っていると解釈されているため、「サポートされていない射影オプション: $within」で OperationFailure が発生しています。

于 2013-09-18T20:21:20.707 に答える