博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简单使用MongDB-GEO
阅读量:6655 次
发布时间:2019-06-25

本文共 2783 字,大约阅读时间需要 9 分钟。

win安装mongodb

MongDB版本

  • 创建mongo.conf配置文件,内容如下
dbpath=D:\mongo\datalogpath=D:\mongo\log\mongo.loglogappend=truejournal=truequiet=trueport=27017复制代码
  • 启动MongDb
D:\programs\mongodb-win32-x86_64-2008plus-ssl-3.6.12\bin>mongod.exe --config D:\mongo\config\mongo.conf复制代码

JPA添加数据和使用GEO索引查询中心点附近数据

org.springframework.boot
spring-boot-starter-data-mongodb
org.mongodb
mongo-java-driver
3.4.3
复制代码
##mongo配置spring:  data:    mongodb:      host: 127.0.0.1      port: 27017      database: test复制代码

实体类

import lombok.Data;import org.springframework.data.annotation.Id;import org.springframework.data.mongodb.core.index.GeoSpatialIndexType;import org.springframework.data.mongodb.core.index.GeoSpatialIndexed;import org.springframework.data.mongodb.core.index.Indexed;import org.springframework.data.mongodb.core.mapping.Document;@Data@Document(collection = "bikes")public class Bike {    @Id    private String id;    private int status;    @Indexed    private long bikeNo;    // 空间球面索引    @GeoSpatialIndexed(type = GeoSpatialIndexType.GEO_2DSPHERE)    private double[] location;}复制代码
import com.niubike.niubike.entity.Bike;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.data.geo.GeoResult;import org.springframework.data.geo.GeoResults;import org.springframework.data.geo.Metrics;import org.springframework.data.mongodb.core.MongoTemplate;import org.springframework.data.mongodb.core.query.Criteria;import org.springframework.data.mongodb.core.query.NearQuery;import org.springframework.data.mongodb.core.query.Query;import org.springframework.web.bind.annotation.PostMapping;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RestController;import java.util.List;@RestControllerpublic class BikeController {    @Autowired    private MongoTemplate mongoTemplate;    @PostMapping("/addBike")    public String save(@RequestBody Bike bike) {        bike.setBikeNo(System.currentTimeMillis());        bike.setStatus(0);        mongoTemplate.insert(bike);        return "1";    }    /**     * 根据当前经纬度查找附近单车     * @return     */    @PostMapping("/findNearBike")    public List
> findNearBike(double longitude, double latitude) { NearQuery nearQuery = NearQuery .near(longitude, latitude) .maxDistance(0.2, Metrics.KILOMETERS) .query(new Query(Criteria.where("status").is(0)).limit(20)); GeoResults
geoResults = mongoTemplate.geoNear(nearQuery, Bike.class); return geoResults.getContent(); }}复制代码

效果

查询附近单车数据代码对于高版本的MongoDB不适用。

转载于:https://juejin.im/post/5cb87d386fb9a068b9583142

你可能感兴趣的文章
07.Javascript——入门高阶函数
查看>>
LeetCode – Refresh – Remove Duplicates from Sorted Array
查看>>
centos 7 中没有iptables 和service iptables save 指令使用失败问题解决方案
查看>>
R语言数据可视化1—ggplot2画柱状图
查看>>
Ubuntu安装微信开发者工具
查看>>
Windows 7 MVC2.0部署到IIS7【原创】
查看>>
C#属性和成员变量的区别?
查看>>
ps引发的血案
查看>>
HDU Problem 1312 Red and Black 【DFS】
查看>>
class.py
查看>>
关于DIPS的DLL注入(第22章)
查看>>
windows网络模型之重叠IO(完成例程)的使用
查看>>
C++中的RAII(转)
查看>>
POJ 1733 Parity game
查看>>
一步一步学Entity Framework 4(2)
查看>>
web站点,同一个浏览器只能登陆一个用户的原因(cookie不能跨浏览器)
查看>>
linux 部署 webservice
查看>>
c# 第19节 Arraylist数组
查看>>
【转】vmwaer虚拟机部署-ubuntu piix4_smbus: Host SMBus controller not enabled!
查看>>
hdu 1518 Square (dfs)
查看>>