通过 shell 脚本查询 mongodb 中的地理空间数据看起来很简单,但是,我试图在 morphia (playmorphia) 中复制一些代码。
获取一定半径内的所有点,文档说:
> 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..?谢谢!