五分钟带你玩转mongodb(一)mongoDb简介和整合spring boot
MongoDb
MongoDb是一种非关系型数据库,是现在非常火热的noSQL。也被称为文档性数据库。(可存放json,xml等格式)
mongodb与mysql命令对比 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,
MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。(存储xml,json等)
MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点。
一条MongoDB就是一个类似json数据结构。
特点:
1.存储方式:虚拟内存+持久化。(数据存储在磁盘,但是充分利用了缓存,常用的数据放于内存)
2.不使用固定的sql进行操作。(有固定语法)
MongoDb的优点
1.高速。
2.支持json。(可存放复杂数据)
3.可扩展分片集群。
MongoDb的缺点
1.事务关系支持薄弱。
2.稳定性不足。
3.运维难。
4.不支持对表关联查询。
5.在指定id之后插入会比较慢。
使用场景
1.对大量无固定格式的数据存储,如日志等。(充分的使用了内存)
2.需要高性能。
3.扩展集群。
对MongoDb增删查改
首先需要安装,可以按照这位老哥的来安装 https://www.cnblogs.com/RushPasser/p/b060ea88677ab73fce01300d19676158.html。亲试贼专业。
1.进入C:\Program Files\MongoDB\Server\3.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
- 6
删除
db.message.remove() --删除所有
db.message.remove({'class':'1-1'}) --删除class = 1-1的那条
- 1
- 2
spring boot整合mongodb
然后在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
- 29
- 30
- 31
文章来源: baocl.blog.csdn.net,作者:小黄鸡1992,版权归原作者所有,如需转载,请联系作者。
原文链接:baocl.blog.csdn.net/article/details/82866973
- 点赞
- 收藏
- 关注作者
评论(0)