博客
关于我
MongoDB - 整合 SpringBoot 操作全流程
阅读量:795 次
发布时间:2023-02-09

本文共 2386 字,大约阅读时间需要 7 分钟。

MongoDB 与 SpringBoot 整合实践指南

1. 引入依赖

在项目中引入必要的依赖项,确保与 MongoDB 进行通信。通过 Maven 的方式添加 Spring Boot 数据 MongoDB Starter:

org.springframework.boot
spring-boot-starter-data-mongodb

2. 配置文件

配置 application.properties 文件,设置 MongoDB 的基本信息,包括 URI、命名策略等。注意:MongoDB URI 格式为 mongodb://ip:port/database

spring.data.mongodb.uri=mongodb://192.168.73.3:27017/demospring.data.mapping.fieldNamingStrategy=org.springframework.data.mapping.model.SnakeCaseFieldNamingStrategy

3. 集合操作

3.1 创建集合

检查集合是否存在,如果不存在则创建:

if (!mongoTemplate.collectionExists("demo")) {    mongoTemplate.createCollection("demo");}

3.2 删除集合

删除指定集合:

mongoTemplate.dropCollection("demo1");

4. 注解说明

在 MongoDB 中,通过注解对应字段进行映射和操作。

4.1 @Document

用于将 POJO 映射为 MongoDB 文档,指定集合名称:

@Document("demo")public class User {    // ... }

4.2 @Id

将字段映射为 MongoDB 的 _id

@Idprivate Integer id;

4.3 @Field

指定字段在 MongoDB 中的命名:

@Field("work_day")private Date workDay;

4.4 @Transient

标记字段不参与序列化:

@Transientprivate String transientField;

5. 文档操作

5.1 查询

// 查询所有文档List
users = mongoTemplate.findAll(User.class);// 根据 ID 查询单个文档User userById = mongoTemplate.findById(1, User.class);// 根据条件查询List
usersByCondition = mongoTemplate.find( Query.query(Criteria.where("name").is("周杰伦")), User.class);

5.2 分页与排序

// 分页查询public List
findPaginated(int page, int size) { Query query = new Query(); query.skip((page - 1) * size).limit(size); return mongoTemplate.find(query, User.class);}

5.3 更新

// 更新单条记录mongoTemplate.updateFirst(    Query.query(Criteria.where("name").is("周杰伦")), new Update().set("age", 20), User.class);// 更新多条记录mongoTemplate.updateMulti(    Query.query(Criteria.where("name").is("周杰伦")), new Update().set("age", 20), User.class);

5.4 删除

// 删除所有文档mongoTemplate.remove(new Query(), User.class);// 删除按条件mongoTemplate.remove(    Query.query(Criteria.where("name").is("林俊杰")), User.class);

6. 事务

6.1 配置

在应用配置类中启用事务管理:

@Configurationpublic class MongoTransactionConfig {    @Bean    public MongoTransactionManager transactionManager(        MongoDatabaseFactory factory    ) {        return new MongoTransactionManager(factory);    }}

6.2 使用事务

在需要事务的业务逻辑中使用 @Transactional 注解:

@Transactionalpublic void handler(RegDto dto) {    // 业务逻辑    userIdentRepo.save(dto);    throw new RuntimeException("业务处理错误");}

7. 注意事项

  • MongoDB 对类型严格要求,确保查询时类型匹配。
  • 默认情况下 MongoDB 不建议设置密码,建议使用更安全的方式管理访问权限。

转载地址:http://wcffk.baihongyu.com/

你可能感兴趣的文章
mongodb 命令行操作
查看>>
mongodb 和 mongoose 初探
查看>>
mongodb 备份压缩_MongoDB实现备份压缩的方法教程 _ 蚂蚁视界
查看>>
MongoDB 安装配置
查看>>
MongoDB 对索引的创建查询修改删除 附代码
查看>>
MSSQL数据库日志满的快速解决办法
查看>>
MongoDB 性能调优
查看>>
MongoDB 文档字段增删改
查看>>
MongoDB 核心技术详解
查看>>
MongoDB 系统管理与操作详解
查看>>
mongoDB 索引
查看>>
MongoDB 聚合
查看>>
mongodb 集群shard_MongoDB Sharding Cluster 分片集群搭建及使用
查看>>
mongodb 默认端口号_MongoDB的简单使用
查看>>
mongodb-地理坐标存储查询
查看>>
MongoDB与Mysql常用命令解释
查看>>
MongoDB两地三中心集群架构设计、全球多写集群架构设计
查看>>
mongodb中比较级查询条件:($lt $lte $gt $gte)(大于、小于)、查找条件
查看>>
Mongodb中的聚合函数使用:按月统计数量
查看>>
Mongodb主从配置
查看>>