【发布时间】:2016-12-27 20:02:50
【问题描述】:
我正在为我的项目使用 Spring data MongoDB。
这是我的 Java 对象
@Document(collection="StoreData")
public class StoreData{
@Id
private String id;
private String storeName;
private GeoJsonPoint storeLocation;
private double geoLat;
private double geoLng;
private char isStoreOpenInd;
private char doesStoreAcceptCreditInd;
}
前端对查询此 Mongo DB 的后端应用程序进行休息调用。根据要求,我一定会得到一个地理编码 - 经纬度。除此之外,我还可以获得名称或任何这些指标。其余服务应该通过应用所有这些过滤条件来返回结果,但始终按请求中提供的 lat long 的距离排序。
我能够使用所有这些条件编写一个 Query 对象并使用 MongoTemplate 获得结果。但是结果没有排序。我如何对它们进行排序?
这是我到现在为止的代码。
Query query = new Query();
TextCriteria textCriteria = TextCriteria.forDefaultLanguage().matchingAny(storeNameFromRequest);
query.addCriteria(textCriteria);
Point geoPoint = new Point(lngFromRequest, latFromRequest);
Distance geoDistance = new Distance(10, "MI");
Circle geoCircle = new Circle(geoPoint, geoDistance);
query.addCriteria(Criteria.where("atmGeoLocation").withinSphere(geoCircle));
query.addCriteria(Criteria.where("isStoreOpenInd").is(isStoreOpenIndFromRequest);
没有地方可以添加 SORT 或 ORDER BY。我怎么得到这个?
【问题讨论】:
标签: mongodb spring-data spring-data-mongodb