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);
    }
相关推荐
十八旬23 分钟前
苍穹外卖项目实战(day-5完整版)-记录实战教程及问题的解决方法
java·开发语言·spring boot·redis·mysql
chenrui3101 小时前
Spring Boot 和 Spring Cloud: 区别与联系
spring boot·后端·spring cloud
邂逅星河浪漫1 小时前
Spring Boot常用注解-详细解析+示例
java·spring boot·后端·注解
送秋三十五1 小时前
MySQL DBA需要掌握的 7 个问题
数据库·mysql·dba
睡觉的时候不会困1 小时前
MySQL 高可用方案之 MHA 架构搭建与实践
数据库·mysql·架构
kyle~1 小时前
Qt---对话框QDialog
数据库·qt·microsoft
GBASE1 小时前
“G”术时刻:南大通用GBase 8c数据库权限管理场景实践(三)
数据库
weixin_456904271 小时前
基于Spring Boot + MyBatis的用户管理系统配置
spring boot·后端·mybatis
GottdesKrieges2 小时前
OceanBase系统日志管理
数据库·oracle·oceanbase
小嵌同学3 小时前
Linux:malloc背后的实现细节
大数据·linux·数据库