Springboot整合mongodb

什么时候用mongodb?

在数据量大,高并发的情况下可以使用mongodb,另外mongodb可以用来存储对象

首先看下mongodb和sql概念的一些不同

monogodb内的数据是以bson(类似于json)的形式存储,每个文档都是一个json

1.引入依赖

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

2.添加配置
注意mongodb默认端口号为test

spring:
    data:
        mongodb:
          uri: mongodb://localhost:27017/test

3.创建实体类对应一个集合,实体类的一个对象对应一条数据

@Document("User")//指明实体类对应mongodb的哪个集合
public class User{
@Id //加入mongodb时会自动生成id
private Integer Id;
private String name;
private String age;
...省略构造器,get/set方法
}

4.MongoTemplate

public class test{
@AutoWired
private MongoTemplate mongoTemplate;
public void test(){
User user=new User();
mongoTemplate.insert(user);//插入数据,会自动插入到对应的集合中
List<User> list=mongoTemplate.findAll(User.class);//查询集合的所有数据
User user=mongoTemplate.findById(id,User.class);//根据id查询

Query query=new Query(Criteria.where("name").is("wang").and("age").is("20"));//Query是条件构造器,这个条件代表name是wang,age是20
mongoTemplate.find(query,User.class);//条件查询
mongoTemplate.find(query.skip((curPage-1)*size).limit(size),User.class);//分页查询,query.skip((curPage-1)*size).limit(size)表示跳过(当前页-1)*每页的大小条数据,输出size条数据

Update update=new Update();
update.set("name","li");
UpdateResult upsert=mongoTemplate.upsert(query,update,User.class);//修改,跟别的不同的是修改需要把修改的内容传递给一个Update对象
Long count1=upsert.getModifiedCount();  //得到受影响的数据数


DeleteResult remove=mongoTemplate.remove(query,User.class);//删除
Long count2=remove.getModifiedCount();//得到受影响的数据数
}

}
posted @   刚刚好。  阅读(6165)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示