mongoDb入门并整合springboot

网友投稿 550 2022-05-29

1.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.使用场景

对大量无固定格式的数据存储,如日志等。(充分的使用了内存)

需要高性能。

扩展集群。

2.MongoDb的curd语法

1.安装

首先需要安装,可以按照这位老哥的来安装 https://www.cnblogs.com/RushPasser/p/b060ea88677ab73fce01300d19676158.html。亲试贼专业。

2.操作命令

进入C:\Program Files\MongoDB\Server.4\bin,双击mongo.exe。

show dbs --查看数据库,假设我们有一个叫test的数据库 use test 使用test数据库

1

2

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'})

1

2

3

db.message.find() --查询message db.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() --查询条数

1

2

3

4

5

6

7

8

9

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}) --修改所有数据

1

2

3

4

5

db.message.remove() --删除所有 db.message.remove({'class':'1-1'}) --删除class = 1-1的那条

1

2

3.整合spring boot

在application.properties加入mongoDb链接。

spring.data.mongodb.uri=mongodb://192.168.2.81:27017/test

1

然后使用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); }

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

mongoDb入门并整合springboot

29

30

31

32

33

34

MongoDB Spring Boot

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:POJ 2411 Mondriaan's Dream (轮廓线DP代码详解)
下一篇:mongoDb入门并整合spring boot
相关文章