镜像下载、域名解析、工夫同步请点击 阿里巴巴开源镜像站
MongoDb简介
- MongoDb是一种非关系型数据库,是当初十分炽热的noSQL。也被称为文档性数据库。(可寄存json,xml等格局)
- mongodb与mysql命令比照 传统的关系数据库个别由数据库(database)、表(table)、记录(record)三个档次概念组成,
- MongoDB是由数据库(database)、汇合(collection)、文档对象(document)三个档次组成。(存储xml,json等)
- MongoDB对于关系型数据库里的表,然而汇合中没有列、行和关系概念,这体现了模式自在的特点。
- 一条MongoDB就是一个相似json数据结构。
特点:
- 存储形式:虚拟内存+长久化。(数据存储在磁盘,然而充分利用了缓存,罕用的数据放于内存)
- 不应用固定的sql进行操作。(有固定语法)
1.MongoDb的长处
- 高速。
- 反对json。(可寄存简单数据)
- 可扩大分片集群。
2.MongoDb的毛病
- 事务关系反对单薄。
- 稳定性有余。
- 运维难。
- 不反对对表关联查问。
- 在指定id之后插入会比较慢。
3.应用场景
- 对大量无固定格局的数据存储,如日志等。(充沛的应用了内存)
- 须要高性能。
- 扩大集群。
MongoDb的curd语法
装置
首先须要装置,能够依照这位老哥的来装置
操作命令
进入C:\Program Files\MongoDB\Server\3.4\bin,双击mongo.exe。
show dbs --查看数据库,假如咱们有一个叫test的数据库use test 应用test数据库
1.插入语法
db.message.save({'name':'xiaobao','age':27,'class':'1-1'}) --插入message的信息。外面为json。db.message.save({'name':'xiaobao2','age':28,'class':'2-1'})db.message.save({'name':'xiaobao3','age':29,'class':'3-1'})
2.查问语法
db.message.find() --查问messagedb.message.find().pretty() --格式化在查问db.message.find() .limit(1) --查问一条db.message.find({"age":{"$gte":10}}) --查问age大于10的数据db.message.find({"age":{"$lte":10}}) --查问age小于10的数据db.message.find().sort({"age":1}) --正排序db.message.find().sort({"age":1}) --负排序db.message.count() --查问条数
3.批改语法
db.message.update({"name":"xiaobao"},{$set:{"name":"xiaowang"}}) db.message.update({"name":"xiaowang"},{"name":"laoli"}) --批改name 为laoli 其余值删除db.message.update({"name":"xiaobao2"},{$set:{"name":"xiaowang"}},{upsert:true}) --如果没有 减少一条db.message.update({"name":"xiaowang"},{$set:{"name":"xiaowang"}},{multi:true}) --批改所有数据
4.删除语法
db.message.remove() --删除所有db.message.remove({'class':'1-1'}) --删除class = 1-1的那条
整合spring boot
在application.properties退出mongoDb链接。
spring.data.mongodb.uri=mongodb://192.168.2.81:27017/test
而后应用MongoTemplate 来操作数据库,MongoTemplate 和罕用的RedisTemplate差不多,都是封装了mongoDb办法的客户端。
@Autowired private MongoTemplate mongotemplate; //减少 @RequestMapping(path = "/savemongo", method = RequestMethod.POST) @ResponseBody public void savecCity(@RequestBody City city) { mongotemplate.save(city);//通过一个类类型向数据库中插入json } //查问 @RequestMapping("/selmongo") @ResponseBody public City select(@RequestParam int id) { Query query = new Query(Criteria.where("id").is(id)); //查问id为传入参数 City user = mongotemplate.findOne(query, City.class); return user; } //删除 @RequestMapping("/delmogo") @ResponseBody public void del(@RequestParam int id) { Query query = new Query(Criteria.where("id").is(id)); //集体了解此行为查问条件,而后在上面查找出在删除。 mongotemplate.remove(query, City.class); } //批改 @RequestMapping(path = "/updamogo", method = RequestMethod.POST) @ResponseBody public void updateMongo(@RequestBody City city) { Query query = new Query(Criteria.where("id").is(city.getId())); Update update = new Update().set("provinceId", city.getProvinceId()).set("cityName", city.getCityName()); mongotemplate.updateFirst(query, update, City.class); }
本文转自:
https://blog.51cto.com/u_1540...