mongodb での地理空間データのクエリは、シェル スクリプトを介して十分に簡単に見えますが、モルフィア (プレイモーフィア) でいくつかのコードを複製しようとしています。
特定の半径内のすべてのポイントを取得すると、ドキュメントは次のように述べています。
> center = [50, 50]
> radius = 10
> db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})
私の Peak モデルのコードは次のとおりです。
Double[] loc = new Double(2);
// it's set to my [Longitude, Latitude]
List<Peak> peaks = play.modules.morphia.Model.ds().find(Peak.class).field("loc").near(loc[0], loc[1], 10/111.12).limit(50).asList();
それは機能しますが、ds().find() を使用して何か間違ったことをしていますか? Peak.find.. などのモデルを使用してこれを行うよりエレガントな方法はありますか? ありがとう!