当前位置: 首页 > news >正文

SpringBoot + MongoDB 5分钟快速集成:从0到1实操指南

目录

MongoDB‌

快速集成

常用API


MongoDB

MongoDB‌ 是一个基于分布式文件存储的‌文档型数据库‌,属于 NoSQL 数据库中最接近关系型数据库的产品,旨在为 Web 应用提供高性能、高可用和可扩展的数据存储解决方案 。

MongoDB以灵活的无模式文档模型适配快速迭代的业务需求,通过分片与副本集实现海量数据的高可用存储与高性能读写,是处理非结构化、半结构化数据的理想选择。

它广泛应用于社交、游戏、物联网等场景,尤其擅长支撑数据量大、读写频繁、事务要求不高的业务,比如存储用户动态、游戏角色信息、设备日志等,还可借助地理位置索引实现LBS服务。

快速集成

pom

<!-- Spring Boot Starter Data MongoDB --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency>

application.yml配置

spring: data: mongodb: uri: mongodb://username:password@localhost:27017/databaseName?replicaSet=mgset-youmgset

创建配置类(可选)

虽然Spring Boot的自动配置通常足以满足大多数需求,但有时你可能需要自定义配置。你可以创建一个配置类来配置MongoTemplate

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.SimpleMongoClientDatabaseFactory; import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients; @Configuration public class MongoConfig { @Bean public MongoTemplate mongoTemplate() { MongoClient mongoClient = MongoClients.create("mongodb://username:password@localhost:27017/yourDatabaseName"); return new MongoTemplate(new SimpleMongoClientDatabaseFactory(mongoClient, "yourDatabaseName")); } }

注入MongoTemplate

@Autowired private MongoTemplate mongoTemplate;

常用API

实体示例

import org.springframework.data.annotation.Id; import org.springframework.data.mongodb.core.mapping.Document; @Document(collection = "Book") @Data public class Book { @Id private String id; private String title; private Date time; 。。。 }

查询示例

// 查询全部 List<Book> findAll = mongoTemplate.findAll(Book.class); // 构建精确查询条件 Query query = new Query(); query.addCriteria(Criteria.where("name").is(name)); // 模糊查询 query.addCriteria(Criteria.where("author").regex(author, "i")); // 设置分页 Pageable pageable = PageRequest.of(page, size, Sort.by("desc", "id")); query.with(pageable); // 执行查询 List<Book> books = mongoTemplate.find(query, Book.class); // 获取总数 long total = mongoTemplate.count(query, Book.class);

根据ID查询

mongoTemplate.findById(id,Book.class);

保存

Book book = new Book(); book.set... mongoTemplate.save(book);

删除

Query query = new Query(); query.addCriteria(Criteria.where("_id").is(Id)); mongoTemplate.remove(query, Book.class);

范围查询

Criteria criteria = Criteria.where("age").gte(18).and("age").lte(65); query.addCriteria(criteria); 等价于 MongoDB 查询: { age: { $gte: 18, $lte: 65 } }

修改

Query query = new Query(); query.addCriteria(Criteria.where("_id").is(id)); Update update = new Update(); update.pull("tags", tag); mongoTemplate.updateFirst(query, update, Book.class);

到此常用的增删改查就完成了

http://www.jsqmd.com/news/568689/

相关文章:

  • 把openEuler当微服务跑:Docker Compose编排实战,管理Nginx+MySQL多容器应用
  • CARLA模拟器实战:手把手教你用Bench2Drive测试端到端自动驾驶模型(附避坑指南)
  • 为什么现代RNN都选择Elman结构?从Jordan到Elman的演进史与实战对比
  • 2026年AI大模型产品经理最全学习路线:一篇文章涵盖所有,足够详细
  • nli-distilroberta-base与Java微服务集成:SpringBoot实战案例
  • Python3 vs Python2的CTF解密陷阱:以攻防世界pcap1为例,详解编码转换与库函数差异
  • Nacos 2.x鉴权踩坑记:手把手教你修复namespaces接口未授权访问(附源码修改)
  • 从服务暴露到语义裁剪:全面理解 SAP ABAP CDS projection view 的设计价值与实战用法
  • 张一鸣我的231条语录张一鸣微博2286条张一鸣创业心路
  • SpringBoot 接口测试:Postman 与 JUnit 5 实战
  • 国内RISC-V MCU市场解析与选型指南
  • DeOldify图像上色在Java项目中的集成:SpringBoot微服务实战
  • OpenClaw人人养虾:配置Anthropic (Claude)
  • 3DES加密在Java中的实际应用:如何避免常见陷阱与性能优化技巧
  • 功能越来越强,但 IT 使用体验却越来越差
  • Python并发性能断崖式下跌?立即检查这4类内存屏障误用——GIL-free环境下最隐蔽的ABA问题与seq_cst调试清单
  • Java向量API兼容性雷区(JDK21/22/23差异清单):仅37%的VectorSpecies在ARM64上默认启用——速查你的CI环境
  • Python数据可视化必学:Matplotlib坐标系变换详解(附3D图表实战案例)
  • OpenCore Legacy Patcher技术突破:深度解构非官方macOS升级的终极方案
  • 3步解锁音乐自由:NCMDump如何帮你打破网易云音乐格式限制
  • 别再只背原理了!用C语言从零实现一个RC4加密解密工具(含S盒可视化调试)
  • MC33996汽车级H桥预驱芯片Arduino驱动库详解
  • 从政策到代码:用星环数据空间API实现跨境数据合规传输(Python示例版)
  • Windows下用Vcpkg一键搞定OpenCV 4.6.0开发环境(附CMake配置指南)
  • Java函数计算可观测性黑洞(Trace缺失率超41%?基于OpenTelemetry+Prometheus的端到端链路补全手册)
  • Zemax优化技巧:单透镜像差太大?3个实用方法提升F/4系统性能
  • 告别漫长等待:加速UE5源码编译与依赖下载的实战技巧
  • 基于JAVA实现modbus rtu通信(二):数据类型转换与读写实战
  • 告别臃肿控制中心:用轻量级工具重塑笔记本优化体验
  • 智能转换与结构化输出:重新定义文档处理的效率边界