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);
    }
相关推荐
AIgorithmGEEK3 小时前
MySQL 索引全解(下):建、查、删实战与知识速查表
数据库·mysql·b+树·索引
唠点键盘之外的5 小时前
26 向量数据库实战:从 0 搭一条能用的检索链路(pgvector + Spring AI)
数据库·人工智能·spring
云和恩墨5 小时前
数据库监控简史:监控不止于告警——从图表大爆发到健康管理闭环
数据库
ly76895 小时前
MongoDB 事务开销实测:快照隔离下的写冲突、重试与分片事务边界
数据库·mongodb·事务·分片集群·快照隔离·写冲突
豆角焖肉5 小时前
Spring AOP 自定义注解实现系统操作日志
数据库·自定义注解·springaop·操作日志·aop 切面
金伟API10247 小时前
不会写复杂SQL怎么办?
数据库·sql
paopaokaka_luck7 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
执笔为剑7 小时前
2.1.2-1、V8R3迁移到V8R6-Oracle兼容特性
数据库
SL_staff7 小时前
JVS混合架构实践:能力引擎+动态模型如何支撑企业级可持续交付
spring boot·低代码·全栈
迪飞特科技7 小时前
智慧物业平台实战:Spring Boot 整合小程序实现报修巡检费用全流程
spring boot·后端·小程序