创建Spring Data MongoDB 依赖的 Spring Boot 项目 在 IntelliJ IDEA 中新建一个包含 Spring Data MongoDB 依赖的 Spring Boot 项目最直接的方式是使用其内置的 Spring Initializr 项目向导。以下是具体步骤步骤一创建新项目打开新建项目向导启动 IntelliJ IDEA。如果看到欢迎屏幕点击 “新建项目”如果已经在一个项目中则通过顶部菜单选择 “文件” - “新建” - “项目”。选择项目生成器在弹出的“新建项目”对话框中从左侧的“生成器”列表中选择 “Spring Boot”。步骤二配置项目基本信息在向导的下一步中配置项目的核心信息名称为你的项目起一个名字例如 mongodb-demo。语言选择 Java。类型选择 Maven这是最主流的方式。JDK选择你已安装的 JDK版本 17 或以上这是 Spring Boot 3.x 的基础要求。如果没有可以点击“下载 JDK”。其他选项如“组”、“工件”、“包名”可以使用默认值或按需修改。步骤三添加 Spring Data MongoDB 依赖这是最关键的一步。点击 “下一步”进入依赖选择界面。在依赖搜索框中输入 Spring Data MongoDB。在搜索结果中勾选 Spring Data MongoDB 依赖。可选如果你的项目需要提供 Web API建议同时搜索并勾选 Spring Web 依赖。步骤四生成并打开项目完成依赖选择后点击 “创建” 按钮。IntelliJ IDEA 将自动连接到 Spring Initializr 服务生成项目结构并下载所有依赖。这可能需要一点时间。验证与后续配置项目创建成功后可以进行以下验证和配置1.检查pom.xml文件打开项目根目录下的pom.xml文件你应该能在dependencies标签中看到自动添加的spring-boot-starter-data-mongodb依赖。dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-data-mongodb/artifactId /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-webmvc/artifactId /dependency2.配置 MongoDB 连接在src/main/resources目录下的application.properties或application.yml文件中配置你的 MongoDB 连接信息。application.properties示例spring.application.namecdms spring.mongodb.urimongodb://192.168.0.51:27017/cdmsdbspring.application.namecdms spring.mongodb.urimongodb://{用户名}:{密码}192.168.0.51:27017/cdmsdb?authSourcecdmsdb #生产环境需设置登录用户名、密码数据库名称配置 mongodb 数据库连接及验证。3、操作创建集合package com.mongodb.cdms; import com.mongodb.client.MongoCollection; import org.bson.Document; import org.junit.jupiter.api.Test; // 导入这个注解 import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.boot.test.context.SpringBootTest; public class mongotemplate extends CdmsApplicationTests { Autowired private MongoTemplate mongoTemplate; Test // 添加这个注解 public void createCollectionTest() { if (!mongoTemplate.collectionExists(user_test)) { mongoTemplate.createCollection(user_test); System.out.println(集合创建成功); } Document doc new Document(username, test) .append(age, 20); MongoCollectionDocument collection mongoTemplate.getCollection(user_test); collection.insertOne(doc); } }右键 Run 这个程序4、CRUD操作package com.mongodb.cdms; import com.mongodb.cdms.entity.CustInfo; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; import java.util.List; import static org.springframework.data.mongodb.core.query.Criteria.where; SpringBootTest public class CustInfoCrudTest { Autowired private MongoTemplate mongoTemplate; // 1. 插入Create Test public void insertTest() { CustInfo cust new CustInfo(C1001, 李磊, M, 13800001111, 北京市朝阳区1号); CustInfo saved mongoTemplate.insert(cust, CUST_INFO2); // 指定集合名 System.out.println(插入成功ID: saved.getId()); } // 批量插入如需 Test public void insertBatchTest() { // 略参考之前的批量插入示例 } // 2. 查询Read // 2.1 查询所有 Test public void findAllTest() { ListCustInfo list mongoTemplate.findAll(CustInfo.class, CUST_INFO2); System.out.println(共 list.size() 条记录); list.forEach(System.out::println); } // 2.2 等值查询根据 CUST_ID Test public void findByCustIdTest() { Query query Query.query(Criteria.where(CUST_ID).is(C1001)); CustInfo cust mongoTemplate.findOne(query, CustInfo.class, CUST_INFO2); System.out.println(查询结果 cust); } // 2.3 多个条件组合gender phone_num Test public void findByGenderAndPhoneTest() { Query query Query.query( Criteria.where(gender).is(M) .and(phone_num).regex(^138) // 电话以138开头模糊查询 ); ListCustInfo list mongoTemplate.find(query, CustInfo.class, CUST_INFO2); System.out.println(符合条件男且138开头的记录数 list.size()); list.forEach(System.out::println); } // 2.4 条件address 包含“北京”正则模糊查询 Test public void findByAddressLikeTest() { Query query Query.query(Criteria.where(address).regex(.*北京.*)); ListCustInfo list mongoTemplate.find(query, CustInfo.class, CUST_INFO2); System.out.println(地址包含“北京”的记录数 list.size()); } // 2.5 条件CUST_NAME 以“张”开头前缀匹配 Test public void findByNamePrefixTest() { Query query Query.query(Criteria.where(CUST_NAME).regex(^张)); ListCustInfo list mongoTemplate.find(query, CustInfo.class, CUST_INFO2); System.out.println(姓张的客户数 list.size()); } // 2.6 分页查询示例第1页每页10条按CUST_ID升序 Test public void findPageTest() { int page 1; // 页码从1开始 int size 10; Query query new Query(); query.skip((page - 1) * size).limit(size); query.with(org.springframework.data.domain.Sort.by(CUST_ID).ascending()); ListCustInfo list mongoTemplate.find(query, CustInfo.class, CUST_INFO2); list.forEach(System.out::println); } // 3. 更新Update // 3.1 更新单个字段根据 CUST_ID 修改地址 Test public void updateAddressTest() { Query query Query.query(Criteria.where(CUST_ID).is(C1001)); Update update new Update().set(address, 上海市浦东新区2号); // 更新第一个匹配的文档 mongoTemplate.updateFirst(query, update, CustInfo.class, CUST_INFO2); System.out.println(更新完成); } // 3.2 批量更新将 gender 为 F 的电话号码前缀改为 150演示 Test public void updateBatchTest() { Query query Query.query(Criteria.where(gender).is(F)); Update update new Update().set(phone_num, 150 00000000); // 简单示例实际需拼接 // 更新所有匹配的文档 mongoTemplate.updateMulti(query, update, CustInfo.class, CUST_INFO2); System.out.println(批量更新完成); } // 3.3 使用 upsert如果不存在则插入 Test public void upsertTest() { Query query Query.query(Criteria.where(CUST_ID).is(C9999)); Update update new Update() .set(CUST_NAME, 王五) .set(gender, M) .set(phone_num, 13999999999) .set(address, 成都市武侯区); mongoTemplate.upsert(query, update, CustInfo.class, CUST_INFO2); System.out.println(upsert 执行完成若不存在则插入); } // 4. 删除Delete // 4.1 删除符合条件的第一个文档 Test public void deleteFirstTest() { Query query Query.query(Criteria.where(phone_num).is(13800001111)); mongoTemplate.remove(query, CustInfo.class, CUST_INFO2); System.out.println(删除成功第一个匹配的文档); } // 4.2 删除所有符合条件的数据例如删除 CUST_ID 以 C9 开头的 Test public void deleteAllByConditionTest() { Query query Query.query(Criteria.where(CUST_ID).regex(^C9)); mongoTemplate.remove(query, CustInfo.class, CUST_INFO2); System.out.println(删除所有 CUST_ID 以 C9 开头的记录); } // 4.3 删除整个集合慎用 Test public void dropCollectionTest() { mongoTemplate.dropCollection(CUST_INFO2); System.out.println(集合 CUST_INFO2 已被删除); } }

相关新闻

最新新闻

LLC设计指南(九)第九章:真正开始讲 LLC 的变压器——为什么它比 Flyback 难十倍?

LLC设计指南(九)第九章:真正开始讲 LLC 的变压器——为什么它比 Flyback 难十倍?

第九章:真正开始讲 LLC 的变压器——为什么它比 Flyback 难十倍? 如果说: Lr Lm Cr是 LLC 的灵魂。 那么: 变压器就是 LLC 的心脏。 很多工程师第一次做 LLC。 最大的误判是: “变压器嘛,不就是隔离、变压?” 结果: 打样回来: 频率飘 效率低 发热 轻载啸叫 ZVS …

2026/7/4 4:45:37
Java并发:并发容器与框架完全解析

Java并发:并发容器与框架完全解析

一、并发容器和框架的定义及优势 在传统的多线程编程中,为了保证共享数据的线程安全,开发者必须手动编写同步代码,例如使用synchronized或Lock对临界区进行加锁。这种方式不仅容易出错,还会降低程序的性能。并发容器和框架的出现…

2026/7/4 4:45:37
第 26 篇:区域采样统计—马赛克、彩色玻璃与油画效果

第 26 篇:区域采样统计—马赛克、彩色玻璃与油画效果

区域采样统计—马赛克、彩色玻璃与油画效果 系列导语:本文是"有趣的图像处理"系列第 26 篇。主题是三种视觉风格化效果背后统一的数学框架:区域采样统计——把图像划分为若干区域,用区域内像素的某种统计量来替换颜色,不…

2026/7/4 4:45:37
告别多款解压软件!这款全能压缩工具,单 / 批量处理都顺手

告别多款解压软件!这款全能压缩工具,单 / 批量处理都顺手

日常办公、整理资料、传输文件,压缩和解压几乎是每天都要用到的操作。系统自带工具功能简陋,大文件压缩慢、批量文件只能逐个处理,第三方软件又常捆绑广告、弹窗不断,体验很糟心。今天给大家分享一款干净又好用的工具 ——鲲鹏压缩…

2026/7/4 4:45:37
段永平重仓泡泡玛特,情绪消费这门生意彻底被看懂了

段永平重仓泡泡玛特,情绪消费这门生意彻底被看懂了

段永平增持泡泡玛特这件事,这两天在投资圈和消费品行业都引起了很大讨论。根据公开披露信息,2026年5月25日,段永平及其相关投资主体增持泡泡玛特,持股比例达到5.69%,触发港股权益披露要求,并被多家媒体称为…

2026/7/4 4:45:37
《超简单:用 Python 让 Excel 飞起来》读书笔记:第7章 案例02 在 Python 中导入 Excel 数据制作简单的图表

《超简单:用 Python 让 Excel 飞起来》读书笔记:第7章 案例02 在 Python 中导入 Excel 数据制作简单的图表

🔥个人主页:杨利杰YJlio❄️个人专栏:《Sysinternals实战教程》《Windows PowerShell 实战》《WINDOWS教程》《IOS教程》《微信助手》《锤子助手》 《Python》 《Kali Linux》 《那些年未解决的Windows疑难杂症》🌟 让复杂的事情更…

2026/7/4 4:40:37

周新闻

月新闻