配置文件:<!-- mongodb --><bean id="mongo" class="org.springframework.data.mongodb.core.MongoFactoryBean"> <property name="host" value="${mongo.host}" /> <property name="port" value="${mongo.port}" /></bean><!--<mongo:mongo host="${mongo.host}" port="${mongo.port}"></mongo:mongo>--><mongo:db-factory mongo-ref="mongo" dbname="${mongo.databaseName}" /><bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate"> <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" /></bean><mongo:repositories base-package="com.example.repository.geo" />代码:根据经纬度查找附近的地理位置@param lat经度,如39.912232@param lng维度 116.412323232@param maxDistance距离目标点的最大距离 ,单位为角度, 建议 0.5~1.5,一个单位长度误差范围为111km@param maxCount结果数目,建议 1~3@return maxDistance范围内的位置,由近到远排序*/List<GeoLocation> serarchNear(double lat, double lng, double maxDistance, int maxCount) { try { Point point = new Point(lng, lat); Query query = new Query(Criteria.where("loc").near(point).maxDistance(maxDistance)); query.limit(maxCount); List<GeoLocation> find = template.find(query, GeoLocation.class); return find; } catch (Exception e) { return null; }}异常信息:java.lang.ClassNotFoundException: com.mongodb.MongoException$DuplicateKeyat org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1858)at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1701)at org.springframework.data.mongodb.core.MongoExceptionTranslator.translateExceptionIfPossible(MongoExceptionTranslator.java:51)at org.springframework.data.mongodb.core.MongoTemplate.potentiallyConvertRuntimeException(MongoTemplate.java:1913)at org.springframework.data.mongodb.core.MongoTemplate.executeFindMultiInternal(MongoTemplate.java:1796)at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1607)at org.springframework.data.mongodb.core.MongoTemplate.doFind(MongoTemplate.java:1591)
添加回答
举报
0/150
提交
取消