SpringBoot集成MongoDB

​欢迎光临我的博客查看最新文章: https://river106.cn

1、MongoDB简介

MongoDB 是一个开源的、高性能、无模式(schema-free)的文档型数据库,它属于 NoSQL 数据库的一种。MongoDB 的设计初衷是为了简化开发和方便扩展,同时提供可扩展的高性能数据存储解决方案。

以下是 MongoDB 的一些关键特点:

  • 面向文档:MongoDB 中的数据以文档的形式存储,这些文档是键值对的集合,类似于 JSON 对象但使用的是 BSON(Binary JSON)格式,这使得它可以存储复杂的数据类型。
  • 无模式(Schema-less):与关系型数据库不同,MongoDB 不需要预先定义固定的表结构,每个文档可以有不同的字段和数据类型。
  • 高可用性和扩展性:MongoDB 支持自动分片(sharding),这有助于水平扩展,能够处理大量的数据和高并发访问。
  • 丰富的查询语言:MongoDB 提供了强大的查询能力,其语法接近于面向对象的查询语言,支持复杂的查询操作,包括排序、聚合等。
  • 索引支持:为了加快查询速度,MongoDB 支持对字段创建索引,包括单字段索引、复合索引、地理空间索引等。
  • 复制和容错:通过副本集(replica set),MongoDB 可以实现数据的冗余存储,提高系统的可靠性和容错能力。
  • 易于使用和集成:MongoDB 提供了多种编程语言的驱动程序,方便开发者进行应用开发,并且拥有图形化管理工具如 Compass、Navicat、Studio 3T等来辅助数据库管理和维护。
  • 社区和支持:作为一个广泛使用的数据库系统,MongoDB 拥有一个活跃的社区和官方提供的商业支持服务。

MongoDB 被设计用来满足现代应用程序的需求,特别是那些需要处理大量非结构化或半结构化数据的应用场景,比如内容管理系统、实时分析、移动应用后端等。由于其灵活性和性能优势,MongoDB 成为许多开发者和企业的首选数据库解决方案之一。

2、MongoDB安装

Linux安装
下载MongoDB Community Server
下载地址:https://www.mongodb.com/try/download/community

解压后启动MongoDB Server

#创建dbpath和logpath
mkdir -p /mongodb/data /mongodb/log  
#进入mongodb目录,启动mongodb服务
bin/mongod --port=27017 --dbpath=/mongodb/data --logpath=/mongodb/log/mongodb.log

3、SpringBoot集成MongoDB

3.1、环境准备

1、引入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

完整依赖如下:

 <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.1.3.RELEASE</version>
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>1.8</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.9</version>
    </dependency>

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-mongodb</artifactId>
    </dependency>
    
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.68</version>
    </dependency>
  </dependencies>

2、配置

application.properties

# MongoDB
spring.data.mongodb.host = 127.0.0.1
spring.data.mongodb.port = 27017
spring.data.mongodb.database = test
spring.data.mongodb.auto-index-creation = true

# 或者直接使用uri方式
#spring.data.mongodb.uri=mongodb://user:password@127.0.0.1:27017/test?authSource=admin&maxPoolSize=100&minPoolSize=10&maxIdleTimeMS=60000&waitQueueTimeoutMS=120000&connectTimeoutMS=10000&socketTimeoutMS=30000

# 打印mongoDB日志
logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
logging.level.org.mongodb.driver.connection=DEBUG

连接配置可参考文档 https://www.mongodb.com/zh-cn/docs/manual/reference/connection-string/

3.2、文档操作

1、新增实体

@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Document(collection = "person") // 指定集合名称
public class Person {
   
    @Id  // 映射文档中的_id
    private Long id;
    private String name;
    private Integer age;
}

2、添加集合文档

集合操作时注入MongoTemplate

@SpringBootTest(classes = MongoApplication.class)
@RunWith(SpringRunner.class)
public class InsertTests {
   
    
    @Resource
    private MongoTemplate mongoTemplate;

    @Test
    public void testInsert() {
   
        Person person = Person
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值