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 分钟前
[2025]MySQL的事务机制是什么样的?redolog,undolog、binog三种日志的区别?二阶段提交是什么?ACID怎么保证的?主从复制的过程?
数据库·mysql
胖胖日记11 分钟前
Mysql基础语法(一)
数据库·mysql
高铭杰13 分钟前
Postgresql源码(144)LockRelease常规锁释放流程分析
数据库·postgresql··lockrelease·regularlock
_UMR_19 分钟前
SpringBoot集成CXF框架,实现WebService
java·spring boot
武昌库里写JAVA44 分钟前
iview 如何设置sider宽度
java·vue.js·spring boot·学习·课程设计
star_and_sun1 小时前
SQL笔记——左连接、右连接、内连接
数据库·笔记·sql
源来是大数据的菜鸟2 小时前
如何将腾讯云的测试集成到自己的SpringBoot中
spring boot·redis·腾讯云
努力的搬砖人.2 小时前
Spring Boot 集成 Solr 的详细步骤及示例
spring boot·mybatis·solr
kngines2 小时前
【PostgreSQL数据分析实战:从数据清洗到可视化全流程】5.4 数据抽样(简单随机抽样/分层抽样)
数据库·postgresql·数据分析·分层抽样·简单抽样·neyman 分配法·tablesample
hello1114-2 小时前
JavaWeb学习打卡-Day6-SpringBean管理、SpringBoot自动装配、Maven高级
spring boot·学习·maven·javaweb