当前位置: 代码迷 >> 综合 >> springboot + mongoTemplate 对mongoDB实现CRUD
  详细解决方案

springboot + mongoTemplate 对mongoDB实现CRUD

热度:79   发布时间:2023-12-08 08:16:13.0

1.添加依赖与配置

spring:data:mongodb:host: 127.0.0.1database: db_baidu
server:port: 8001
<dependency><groupId>org.mongodb</groupId><artifactId>mongodb-driver</artifactId><version>3.5.0</version></dependency>
<!-- 二选一 -><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-mongodb</artifactId></dependency>

2.注入模板

@Autowiredprivate MongoTemplate mongoTemplate;

3.CRUD

新增

@PostMapping("add")public void add(){Users users = new Users();users.setId(1);users.setName("?文博");users.setPwd("123");users.setMessage("爱吃饭");mongoTemplate.save(users);	}
use db_bw
db.users.find()

查询全部

@PostMapping("findAll")public List<Users> findAll(){
    List<Users> all = mongoTemplate.findAll(Users.class);	//根据实体映射查询集合return all;}

根据id删除某一个人

@PostMapping("deletebyid")public String deletebyid(Integer id){
    Query query = new Query(Criteria.where("_id").is(id));	//查询_id为接入id的try {
    mongoTemplate.remove(query,Users.class);	//小坑。需要加上实体否则会找不到return "删除成功";} catch (Exception e) {
    e.printStackTrace();return "删除失败";}}

条件更新数据

    @PostMapping("update")public String update(Integer id){
    //根据id修改 Query query = new Query(Criteria.where("_id").is(id));//修改pwd为789.可为链式编程,继续.setUpdate update = new Update().set("pwd","789");try {
    //符合条件修改第一个mongoTemplate.updateFirst(query,update,Users.class);//符合条件修改全部
// mongoTemplate.updateMulti(query,update,Users.class);//没有则执行新增
// mongoTemplate.upsert(query,update, Users.class);return "修改成功";} catch (Exception e) {
    e.printStackTrace();return "修改失败";}}

多条件查询

@PostMapping("findby")public List<Users> findby(Integer id,String name,String pwd){
    //多条件之间使用and拼接,用的是且的关系Query query = new Query(Criteria.where("_id").is(id).and("name").is(name).and("pwd").is(pwd));List<Users> users =  mongoTemplate.find(query, Users.class);return users;}

天天打码,天天进步!