Запросы геопространственных данных в 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 ..? Спасибо!