MongoDB 集成

导入依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

远程连接配置

#MongoDB连接配置
spring.data.mongodb.uri: mongodb://172.30.138.31:27017/chat_memory_db

使用

创建实体类

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
@Data
@AllArgsConstructor
@NoArgsConstructor
@Document("chat_messages")
public class ChatMessages {
    // 映射到 mongoDB 文档的唯一标识
    @Id
    private ObjectId id;
    // 聊天记录
    private String content;
}

id 使用 ObjectId ​ 则可以由数据库自动生成,否则需要手动传入

CRUD

@SpringBootTest
public class MongoDBTest {
    @Resource
    private MongoTemplate mongoTemplate;
    @Test
    public void testInsert() {
        ChatMessages messages = new ChatMessages();
        messages.setContent("Hello World");
        mongoTemplate.insert(messages);
    }
    @Test
    public void testFindById() {
        ChatMessages messages = mongoTemplate.findById("68a1c3f65539b42627ed494e", ChatMessages.class);
        System.out.println(messages);
    }
    @Test
    public void testUpsert() {
        Criteria criteria = Criteria.where("_id").is("68a1c3f65539b42627ed494e");
        Query query = new Query(criteria);
        Update update = new Update();
        update.set("content", "No hello!");
        mongoTemplate.upsert(query, update, ChatMessages.class);
    }
    @Test
    public void testDelete() {
        Criteria criteria = Criteria.where("_id").is("68a1c3f65539b42627ed494e");
        Query query = new Query(criteria);
        mongoTemplate.remove(query, ChatMessages.class);
    }
}