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);
    }
相关推荐
-dcr13 分钟前
21.mariadb 数据库
数据库·云计算·运维开发·mariadb
荒村瘦马18 分钟前
MySQL中SELECT 语句如何 INTO OUTFILE 保存数据到文件
数据库·mysql·导出文件·into outfile
Script kid27 分钟前
Pytest框架速成
数据库·pytest
hans汉斯1 小时前
【人工智能与机器人研究】一种库坝系统水下成像探查有缆机器人系统设计模式
大数据·数据库·论文阅读·人工智能·设计模式·机器人·论文笔记
June`1 小时前
Redis:高性能内存数据库的六大核心优势
数据库·redis·缓存
IvorySQL1 小时前
PostgreSQL的逻辑复制spill溢出案例和启停库逻辑
数据库·postgresql
安审若无1 小时前
PMON failed to acquire latch 的报错及sqlplus / as sysdba 无法连接
linux·运维·数据库
come112343 小时前
深入Spring Boot的核心——配置管理(指南四)
java·spring boot·后端
come112343 小时前
深入分析JAR和WAR包的区别 (指南七)
android·spring boot·后端
武昌库里写JAVA4 小时前
Java 设计模式在 Spring 框架中的实践:工厂模式与单例模式
java·vue.js·spring boot·sql·学习