【发布时间】:2012-09-22 20:27:09
【问题描述】:
我正在使用 spring-data 与 mongodb 通信,我正在寻找一种执行地理查询的方法,该查询将通过数据库中给定的地理点检索附近的配置文件,我对查询的要求是:
1) 距离限制
2) 返回配置文件数量的限制
3) 根据配置文件中的时间字段进行额外搜索
4) 从检索到的文档中包含/排除字段的能力
一开始我用的是mongoTemplate.geoNear方法...
Query criteria = new Query(Criteria.where("time").gte("some_date"));
criteria.fields().exclude("friends");
NearQuery query = NearQuery.near(point).maxDistance(maxDistance)
.num(limit).query(criteria);
GeoResults<Profile> result = mongoTemplate
.geoNear(query, Profile.class);<br/>
但后来我意识到 mongo 不支持在 geoNear 查询中包含/排除字段。
所以我正在考虑 Near 查询,似乎在 spring-data 中执行这种“复杂”查询的唯一方法是使用 @Query 注释,是否存在在那种查询中支持上述要求 2,3 的方法?还有其他方法吗?
谢谢
【问题讨论】:
-
你找到解决办法了吗?
-
Assaf - 你找到解决方案了吗?请帮帮我.. 谢谢,内哈
-
这里有什么消息吗?如何排除字段?
标签: mongodb geolocation spring-data