MongoDB 整合SpringBoot

映入依赖

复制代码
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

yaml配置

复制代码
spring:
    data:
      mongodb:
        uri: mongodb://localhost:27017/chat_memory_db # mongodb地址 会自动创建

数据库

定义文档(文档相当于MYSQL 的行)

定义文档实体

java 复制代码
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document("chat_message")
public class ChatMessages {

    @Id
    private Long messageId;


    /**
     * 聊天记录列表json字符串
     */
    private String content;

}
java 复制代码
    @Test
    public void test(){
        ChatMessages chatMessages = new ChatMessages(1L,"你好");
        mongoTemplate.insert(chatMessages);
    }

增删改查

复制代码
public void testInsert(){
        ChatMessages chatMessages = new ChatMessages();
        chatMessages.setContent("你好");
        mongoTemplate.insert(chatMessages);
    }

    @Test
    public void testQuery(){
        ChatMessages byId = mongoTemplate.findById("680e38d1eb0e2f7b6d287541", ChatMessages.class);
        System.out.print(byId);
    }

    @Test
    public void testUpdate1(){
        // 根据id修改
        Criteria criteria = Criteria.where("_id").is("680e38d1eb0e2f7b6d287541");
        Query query = new Query(criteria);
        Update update = new Update();
        update.set("content","新的聊天记录");
        // 新增或者更新
        mongoTemplate.upsert(query,update,ChatMessages.class);
    }


    @Test
    public void testUpdate2(){
        // 根据id修改
        Criteria criteria = Criteria.where("_id").is("100");
        Query query = new Query(criteria);
        Update update = new Update();
        update.set("content","新的聊天记录");
        // 新增或者更新
        mongoTemplate.upsert(query,update,ChatMessages.class);
    }

    @Test
    public void testRemove(){
        // 根据id修改
        Criteria criteria = Criteria.where("_id").is("100");
        Query query = new Query(criteria);
        Update update = new Update();
        update.set("content","新的聊天记录");
        // 新增或者更新
        mongoTemplate.remove(query,ChatMessages.class);
    }
相关推荐
一 乐6 小时前
婚纱摄影网站|基于ssm + vue婚纱摄影网站系统(源码+数据库+文档)
前端·javascript·数据库·vue.js·spring boot·后端
1.14(java)8 小时前
SQL数据库操作:从CRUD到高级查询
数据库
Full Stack Developme8 小时前
数据库索引的原理及类型和应用场景
数据库
期待のcode9 小时前
前后端分离项目 Springboot+vue 在云服务器上的部署
服务器·vue.js·spring boot
ProgramHan10 小时前
Spring Boot 3.2 新特性:虚拟线程的落地实践
java·jvm·spring boot
IDC02_FEIYA10 小时前
SQL Server 2025数据库安装图文教程(附SQL Server2025数据库下载安装包)
数据库·windows
辞砚技术录10 小时前
MySQL面试题——联合索引
数据库·面试
萧曵 丶10 小时前
MySQL 主键不推荐使用 UUID 的深层原因
数据库·mysql·索引
小北方城市网11 小时前
分布式锁实战指南:从选型到落地,避开 90% 的坑
java·数据库·redis·分布式·python·缓存
源码获取_wx:Fegn089511 小时前
基于 vue智慧养老院系统
开发语言·前端·javascript·vue.js·spring boot·后端·课程设计