springboot整合mongodb,操作mongodb数据库常见的CRUD

本文介绍了如何在SpringBoot应用中集成MongoDB,通过添加依赖、配置数据库连接,创建实体类和使用MongoTemplate,实现用户数据的插入、批量插入、更新、删除、单个查询、分页查询等基本操作。

这篇我们要说的是springboot整合mongodb,并进行常见的CRUD操作

应用软件

  • idea 2022
  • mongodb6.x
  • mongodb-compass
  • windows11

首先我们需要先下载启动mongodb服务

我们可以先用win+R输入cmd打开window命令提示窗,输入net start命令查看正在启动的服务
也可以打开服务列表进行查看。

1.我们需要先引入mongodb的依赖

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

2.配置application.yaml(没有设置mongodb密码的方式)

spring:
  data:
    mongodb:
      uri: mongodb://localhost:27017/user

3.创建user库以及要操作的集合(这里我用的mongodb-compass可视化工具)

在这里插入图片描述

4.创建与user集合对应的实体类。

@Data
@AllArgsConstructor
@NoArgsConstructor
@Document("user")  //标注该类对应的是mongodb数据库的user集合
public class User {
    @Id //指定id
    private Integer id;

    private String name;

    private Integer age;
}

5.MongoTemplate自动装配

  	private final MongoTemplate mongoTemplate;
  	
    @Autowired
    public Mongodbdemo02ApplicationTests(MongoTemplate mongoTemplate) {
        this.mongoTemplate = mongoTemplate;
    }

6.单个插入

	/**
     * mongodb插入单条数据
     */
    @Test
    void insertOne() {
        User user = new User(1, "coderGAP", 18);
        mongoTemplate.save(user);
    }

执行结果
在这里插入图片描述

7.批量插入

	/**
     * mongodb批量插入
     */
    @Test
    void insertMany(){
        List<User> userList = new ArrayList<>();
        for (int i = 2; i <= 9999; i++) {
            userList.add(new User(i,"CoderGAP" + i,18));
        }
        mongoTemplate.insertAll(userList);
    }

执行结果
在这里插入图片描述

8.修改

	/**
     * 修改(将id为1的name值修改为‘我是mongodb数据库’)
     */
    @Test
    void update(){
        mongoTemplate.updateFirst(
                Query.query(Criteria.where("_id").is(1)), BasicUpdate.update("name","我是mongodb数据库"),"user");
    }

执行结果
在这里插入图片描述

9.删除文档

	/**
     * 删除文档
     */
    @Test
    void DeleteDocument(){
        mongoTemplate.remove(Query.query(Criteria.where("_id").is(1)), "user");
    }

10.删除集合

	/**
     * 删除整个集合
     */
    @Test
    void DeleteCollection(){
        mongoTemplate.dropCollection(User.class);
    }

11.单个查看

	/**
     * 单个查  也就是按照条件查询
     */
    @Test
    void findOne(){
        List<User> userList = mongoTemplate.find(Query.query(Criteria.where("_id").is(1)), User.class);
        userList.forEach(System.out::println);
    }

执行结果
在这里插入图片描述

12.通过ID查询

	/**
     * 通过Id进行查询
     */
    @Test
    void findByID(){
        User byId = mongoTemplate.findById(2, User.class);
        System.out.println(byId);
    }

执行结果
在这里插入图片描述

13.批量查

	/**
     * 批量查
     */
    @Test
    void find(){
        List<User> userList = mongoTemplate.findAll(User.class);
        userList.forEach(System.out::println);
    }

执行结果
在这里插入图片描述

14.分页

	/**
     * mongodb分页
     */
    @Test
    void page(){
        List<User> userList = mongoTemplate.find(
                Query.query(Criteria.where("age").is(18)).skip(8).limit(10), User.class);
        userList.forEach(System.out::println);
    }

执行结果
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值