SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客

沙海
沙海
沙海
1017
文章
2
评论
2021年4月28日12:00:14
评论
1 2698字阅读8分59秒
摘要

SpringBoot项目开发(九):Mongodb的使用

SpringBoot项目开发(九):Mongodb的使用

SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客

闪耀的瞬间
2018-08-08 14:56:43
SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客
4075

SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客

收藏

1

分类专栏:
spring boot
java
SpringBoot 项目开发
文章标签:
spring boot

版权

SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客
1.Mongodb简介

  • MongoDB是一个高性能,开源,无模式的文档型数据库
  • Mongodb可以通过副本集、分片来扩展数据库性能
  • 传统的关系数据库一般由数据库(database)、表(table)、记录(record)三个层次概念组成,MongoDB是由数据库(database)、集合(collection)、文档对象(document)三个层次组成。MongoDB对于关系型数据库里的表,但是集合中没有列、行和关系概念,这体现了模式自由的特点
  • Mongo主要解决的是海量数据的访问效率问题。因为Mongo主要是支持海量数据存储的,所以Mongo还自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。由于Mongo可以支持复杂的数据结构,而且带有强大的数据查询功能

2.应用案例

  • 京东,中国著名电商,使用MongoDB存储商品信息,支持比价和关注功能
  • 赶集网,中国著名分类信息网站,使用MongoDB记录pv浏览计数
  • 百度云,使用MongoDB管理百度云盘中500亿条关于文件源信息的记录

3.不适合场景

  • 不支持事务,需要高度事物性的系统:例如银行或会计系统
  • 需要SQL的系统

4.我所在的项目与电商类似,有商品,不同类别商品的字段不一样,使用Mongodb就非常方便,随时加减字段,当访问能力增加时可以通过增加副本集、分片来扩展数据库性能

######5.SpringBoot 实现MongoDB的增删改查

  • 添加spring-boot-starter-data-mongodb包引用
<dependency>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
1234
  • 在application.properties里面添加 mongodb的连接配置
# MongoDB 配置
spring.data.mongodb.host=192.168.68.133
spring.data.mongodb.port=27017
spring.data.mongodb.authentication-database=admin
spring.data.mongodb.database=admin
spring.data.mongodb.username=admin
spring.data.mongodb.password=123456
#每个主机的连接数
spring.data.mongodb.connections-per-host=50
#线程队列数,它以上面connectionsPerHost值相乘的结果就是线程队列最大值
spring.data.mongodb.threads-allowed-to-block-for-connection-multiplier=50
spring.data.mongodb.connect-timeout=5000
spring.data.mongodb.socket-timeout=3000
spring.data.mongodb.max-wait-time=1500
#控制是否在一个连接时,系统会自动重试
spring.data.mongodb.auto-connect-retry=true
spring.data.mongodb.socket-keep-alive=true
1234567891011121314151617
  • 新建 mongodb测试类,注入 MongodbTemplate 就可以实现增删改查了,新建一个User实体,有 id、name、age 3个字段
public class MongodbTest {

    @Autowired private MongoTemplate mongoTemplate;
	
    @Test
    public void add(){
        User user = new User();
        user.setId(1);
        user.setName("zhuyu");
        user.setAge(26);
        mongoTemplate.insert(user , "User");
    }
    @Test
    public void edit(){
        Query query = new Query(Criteria.where("name").is("zhuyu"));
        Update update = new Update();
        update.set("name","zy");
        update.set("age",24);
        mongoTemplate.updateFirst(query , update , "User");
    }
    @Test
    public void del(){
        Query query = new Query(Criteria.where("name").is("zy"));
        mongoTemplate.remove(query , "User");
    }
    @Test
    public void getById(){
        Query query = new Query(Criteria.where("name").is("zy"));
        User user = mongoTemplate.findOne(query,User.class,"User");
        System.out.println(JSON.toJSONString(user));
    }
}
1234567891011121314151617181920212223242526272829303132

右键运行各个方法,可以用mongodb客户端看到操作后的数据,测试结果如下: 1.执行add SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客

2.执行edit SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客

3.执行getById SpringBoot项目开发(九):Mongodb的使用_zhuyu19911016520-CSDN博客

4.最后 del 掉

现在是对mongodb的一些简单使用,还没有涉及副本集等操作 本篇文章演示了SpringBoot集成Mongodb,之前也写过一篇集成的文章 Mongodb的安装,请参考 mongodb安装Mongodb安装与设置副本集 二 (添加权限认证)

MongoDB数据超多之后请使用索引,真实案例,有张表数据超过300万,分页查询超时,设置合理的索引后秒查 如,按时间倒序索引:db.Global_Exception_Info.createIndex({“createDate”:-1}),正序是 1,倒序是 -1

下篇 引用本地jar包与打包本地jar

继续阅读
weinxin
资源分享QQ群
本站是一个IT技术分享社区, 会经常分享资源和教程; 分享的时代, 请别再沉默!
沙海
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: