首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB - 2dsphere查询返回零结果

MongoDB - 2dsphere查询返回零结果
EN

Stack Overflow用户
提问于 2013-10-20 03:34:30
回答 1查看 691关注 0票数 3

我希望按地理空间索引从MongoDB集合中获取文档列表。我已经按2dsphere索引了集合。

代码语言:javascript
复制
db.getCollection("Info").ensureIndex(new BasicDBObject("location", "2dsphere"), "geospatial");

Info集合中的文档如下所示

代码语言:javascript
复制
{ "_id" : ObjectId("52631572fe38203a7388ebb5"), "location" : { "type" : "Point", "coordinates" : [  144.6682361,  -37.8978304 ] }

当我通过坐标144.6682361,-37.8978304查询Info集合时,返回的集合为零。

我正在使用JAVA来执行此操作。我的JAVA代码如下

代码语言:javascript
复制
DBCollection coll1=db.getCollection("Info");
BasicDBObject locQuery = new BasicDBObject();
locQuery.put("near", loc);
locQuery.append("maxDistance", 3000);           
locCursor =coll1.find(locQuery);
System.out.println("LOCCURSOR"+locCursor.size());

locCursor.size()总是返回0。不知道我错过了哪里。同时,我没有任何错误。它只给了我0份文件。蒙古族用户有什么想法吗?谢谢你的时间和帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-20 08:21:56

您可以直接将协调器的值传递到查询中:

代码语言:javascript
复制
   double lat_lng_values[] = {144.6682361, -37.8978304};
    BasicDBObject geo = new BasicDBObject("$geometry", new BasicDBObject("type","Point").append("coordinates",lat_lng_values));
    BasicDBObject filter = new BasicDBObject("$near", geo);
    filter.put("$maxDistance", 3000);
    BasicDBObject locQuery = new BasicDBObject("location", filter);
    System.out.println(locQuery);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19473657

复制
相关文章

相似问题

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