首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java mongodb near查询

java mongodb near查询
EN

Stack Overflow用户
提问于 2019-02-27 20:40:07
回答 1查看 763关注 0票数 0

用户集合:

代码语言:javascript
复制
"userID":"1",
"location" : [ 
        77.667248, 
        13.0258562
    ],
 "latlong" : {
        "type" : "point",
        "coordinates" : [ 
            77.667248, 
            13.0258562
        ]
    },

Java查询:

代码语言:javascript
复制
 Query mongoQuery1 = new Query();
            mongoQuery1.addCriteria(Criteria.where("latlong.coordinates").near(point));
            mongoTemplate.find(mongoQuery1, User.class,"places");


  Query mongoQuery2 = new Query();
            mongoQuery2.addCriteria(Criteria.where("location").near(point));
            mongoTemplate.find(mongoQuery2, User.class,"places");

我正在使用上面的两个java查询来获取附近的用户,但得到的异常如下所示。我也在用户集合上创建了2dsphere索引。

例外:

代码语言:javascript
复制
org.springframework.core.convert.ConverterNotFoundException: No converter found capable of converting from type [org.springframework.data.geo.Point] to type [org.bson.Document]
    at org.springframework.core.convert.support.GenericConversionService.handleConverterNotFound(GenericConversionService.java:321)
    at org.springframework.core.convert.support.GenericConversionService.convert(GenericConversionService.java:194)

在此时将用户对象插入到集合时,我得到了相同的异常

代码语言:javascript
复制
org.springframework.data.geo.Point point = new Point(12.885970,77.656180);
 User u=new User();
 u.setUserID("123");
 u.setPoint(point);
 mongoTemplate.insert(u,"places");

请帮帮me.Thankyou。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-13 13:52:00

代码语言:javascript
复制
Query q=new Query(Criteria.where("userID").ne(null));
        q.with(new PageRequest(user.getPaginationNumber(),2));
                             //longitude          //latitude
        Point p=new Point(user.getLoc().get(1),user.getLoc().get(0));
        NearQuery n=NearQuery.near(p);
        n.spherical(true);
        n.inKilometers();
        n.maxDistance(16); //16 kms
  n.num(10); //return only 10 objects
  n.query(q);

        GeoResults<User> results=mongoTemplate.geoNear(n,User.class,"User",User.class);
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54905735

复制
相关文章

相似问题

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