springboot 集成mongodb


package com.example.mystudy.domain;

import org.springframework.stereotype.Component;

@Component
public class User {

    private  String name;

    private  Integer age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Integer getAge() {
        return age;
    }

    public void setAge(Integer age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Dog{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

 

package com.example.mystudy.Controller;


import com.example.mystudy.domain.Pagemodel;
import com.example.mystudy.domain.StringbootPageable;
import com.example.mystudy.domain.User;
import com.mongodb.client.result.DeleteResult;
import com.mongodb.client.result.UpdateResult;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.PageImpl;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Order;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.data.mongodb.core.query.Update;
import org.springframework.web.bind.annotation.*;



import java.util.ArrayList;
import java.util.List;
import java.util.regex.Pattern;

@RestController
public class MongodbController  {
    @Autowired
    private MongoTemplate mongoTemplate;
        @GetMapping("/getList")
        public Object  getList(String name){
            Pattern pattern = Pattern.compile("^.*"+name+".*$", Pattern.CASE_INSENSITIVE);
            Query query = Query.query(Criteria.where("name").regex(pattern));

            List<User>  userList=mongoTemplate.findAll(User.class);
            List<User>  userList2=mongoTemplate.find(query,User.class);   
            return userList2;

        }
        @PostMapping("/addList")
        public Object add(User user){
            User newuser=mongoTemplate.insert(user,"user");

            List<User>  userList=mongoTemplate.findAll(User.class);
            return userList;
        }
        @PutMapping("/update")
        public Object update(User user){
            Query query =new Query();
            query.addCriteria(Criteria.where("age").is(user.getAge()));
            Update update =new Update();
            update.set("name",user.getName());
            UpdateResult updateRequest =mongoTemplate.updateFirst(query,update,"user");
            List<User>  userList=mongoTemplate.findAll(User.class);
            return updateRequest;
        }
        @DeleteMapping("/delete")
        public  Object deleteuser(String name){
            Query query = new Query();
            query.addCriteria(Criteria.where("name").is(name));
            DeleteResult deleteResult=mongoTemplate.remove(query,User.class,"user");

            List<User>  userList=mongoTemplate.findAll(User.class);
            return  userList;
        }


        @PostMapping("/getPage")
        public  Object getPage(){
            StringbootPageable stringbootPageable=new StringbootPageable();
            Pagemodel pagemodel=new Pagemodel();
            Query query=new Query();
            List<Order> orders =new ArrayList<Order>();
            orders.add(new Order(Sort.Direction.DESC,"age"));
            Sort sort=Sort.by(orders);
            pagemodel.setPagenumber(1);
            pagemodel.setPageSize(5);

            pagemodel.setSort(sort);
            stringbootPageable.setPagemodel(pagemodel);
            Long count=mongoTemplate.count(query,User.class);
            List<User> list=mongoTemplate.find(query.with(stringbootPageable),User.class);
            Page<User> pagelist=new PageImpl<User>(list,stringbootPageable,count);


            return  pagelist;
        }


}

 

posted @ 2020-05-07 09:50  自律的人真可怕  阅读(281)  评论(0)    收藏  举报