首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >spring mongo支持2dsphere索引的geoJSOn

spring mongo支持2dsphere索引的geoJSOn
EN

Stack Overflow用户
提问于 2014-05-14 15:20:23
回答 1查看 973关注 0票数 0

虽然Mongo在遗留坐标上提供了2dsphere索引,但查询需要以geoJSON格式呈现给点/形状。例如,我在地址集合中插入了以下记录。

代码语言:javascript
复制
{ "city" : "First",  "geo" : [ 13.45, 23.46 ] }
{ "city" : "Second", "geo" : [ 13.45, 20.46 ] }

然后,我使用下面的命令添加了2dsphere index,因为mongodb仍然允许在遗留坐标上使用2dsphere index。

代码语言:javascript
复制
db.address.ensureIndex({"geo":"2dsphere"})

然后,如果我使用遗留格式进行$near查询,但得到一个异常。

代码语言:javascript
复制
> db.address.find({"geo":{$near:{"x":13.45,"y":23.45}}})
error: {
        "$err" : "can't parse query (2dsphere): { $near: { x: 13.45, y: 23.45 } }",
        "code" : 16535
}

但是如果用geoJSON格式进行同样的查询,那么我会得到结果。

代码语言:javascript
复制
> db.address.find({"geo":{$near:{"type":"Point",coordinates:[13.45,23.45]}}})
{ "_id" : ObjectId("537306b4b8ac1f134d9efe89"), "city" : "First", "geo" : [ 13.45, 23.46 ] }
{ "_id" : ObjectId("537306c3b8ac1f134d9efe8a"), "city" : "Second", "geo" : [ 13.45, 20.46 ] }

我的问题是,GeoConverters已经完成了所有到遗留格式的转换。所以,很明显,如果我使用2dsphere索引,它们就不会工作。是否有任何可转换为geoJSON格式。有什么变通方法吗?

EN

回答 1

Stack Overflow用户

发布于 2014-12-18 13:42:33

目前spring-data-mongo不支持新的mongo (> 2.4) 2dsphere索引。在Jira上有一个关于它的公开问题:https://jira.spring.io/browse/DATAMONGO-1113?jql=project%20%3D%20DATAMONGO%20AND%20text%20~%20%22%24geometry%22

在该链接中,您可以找到有关如何创建此类转换器的示例的要点链接。您可以使用它,也可以克服这一限制,使用您希望spring-data-mongo执行的查询创建一个@Query

致以问候。

avaz

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23648057

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档