MongoRepository 基本使用

轉載自:https://www.jianshu.com/p/f47621a224a6

敘述

MongoRepository有以下方法

介紹

count()統計總數
count(Example< S > example)條件統計總數
delete(T entities)通過對象信息刪除某條數據
deleteById(ID id)通過id刪除某條數據
deleteALL(Iterable<? extends T> entities)批量刪除某條數據
deleteAll() 清空表中所有的數據
existsById(ID id) 判斷數據是否存在
exists(Example< T > example) 判斷某特定數據是否存在
findAll() 獲取表中所有的數據
findAll(Sort sort) 獲取表中所有的數據,按照某特定字段排序
findAll(Pageable pageAble) 獲取表中所有的數據,分頁查詢
findAll(Example< T > example) 條件查詢
findAll(Iterable ids) 條件查詢
findAll(Example< T > example,Pageable pageable) 條件分頁查詢
findAll(Example< T > example,Sort sort) 條件查詢排序
findOneById(ID id) 通過id查詢一條數據
findOne(Example example) 通過條件查詢一條數據
insert(S entities) 插入一條數據
insert(Iterable< T > entities) 插入多條數據
save(S entities) 保存一條數據
saveAll(Iterable< T > entities)
save(Iterable< T > iterable) 加入多條數據

以下演示方法的使用,實際上方法傳參方式就幾個,可以舉一反三,以上方法都可以自己嘗試使用。

   //插入文檔中嵌入一個文檔
    @Test
        public void insertMany() {
        Users users=new Users();
        Info info=new Info();
        String []sport={"run","basketball"};
        String []address={"hunan","beijing"};
        info.setSport(sport);
        info.setAddress(address);
        users.setUsername("xiaohao999");
        users.setPhone("183xxxxxxxxx");
        users.setInfo(info);
        Users insert = usersRepository.insert(users);
        System.out.println(insert);

    }

    //批量插入
    @Test
    public void insertList() {
        List<Users> list = new ArrayList<>();
        for (int i = 1; i <= 100; i++) {
            Users users = new Users();
            users.setAddress("湖南");
            users.setHeadImg("");
            users.setPassword("xxxxxxx");
            users.setPhone("183xxxxxxx");
            users.setUsername("xiaohao" + i);
            list.add(users);

        }
        usersRepository.insert(list);

    }

    //查詢全部
    @Test
    public void findALL() {
        List<Users> all = usersRepository.findAll();
        for (Users users : all) {
            System.out.println(users);
        }
    }

    //查詢條數
    @Test
    public void count() {
        long count = usersRepository.count();
        System.out.println(count);
    }

    //條件統計條數
    @Test
    public void countByExample() {
        Users users = new Users();
        users.setUsername("xiaohao55");
        Example<Users> usersExample = Example.of(users);
        long count = usersRepository.count(usersExample);
        System.out.println(count);
    }

    @Test
    public void exists() {
        Users users = new Users();
        users.setUsername("xiaohao");
        Example<Users> usersExample = Example.of(users);
        boolean exists = usersRepository.exists(usersExample);
        System.out.println(exists);
    }

    @Test
    public void existsById() {
        String id = "5d36d565bde542361407adfb";
        boolean exists = usersRepository.existsById(id);
        System.out.println(exists);
    }

    //查詢喜歡運動中有跑步,和籃球的用戶
    @Test
    public void findExample(){
        Users users=new Users();
        Info info =new Info();
        info.setSport(new String[]{"run","basketball"});

        users.setInfo(info);
        Example example=Example.of(users);
        Optional one = usersRepository.findOne(example);
        usersRepository.sa
        Users user = (Users) one.get();
        System.out.println(user);


    }


    //排序查詢,這裏查找姓名按照一個個字段逐一比較
    @Test
    public void findBySort() {

        Sort sort = new Sort(Sort.Direction.DESC, "username");
        List<Users> all = usersRepository.findAll(sort);
        for (Users users : all) {
            System.out.println(users);
        }
    }

    //獲取表中所有的數據,分頁查詢 pageAble
    @Test
    public void findByPageable() {
        int page = 2;
        int size = 100;
        Pageable pageable = new PageRequest(page, size);
        Page<Users> all = usersRepository.findAll(pageable);

        for (Users users : all) {
            System.out.println(users);
        }


    }

    //批量查詢
    @Test
    public void findByList() {

        List<String> ids = new ArrayList<>();
        ids.add("5d36d565bde542361407adfb");
        ids.add("5d36d7e0bde5420f34116904");
        Iterable<Users> allById = usersRepository.findAllById(ids);
        for (Users users:allById ){
            System.out.println(users);
        }


    }

    //
    //利用save更新
    @Test
    public void save() {
        Users users= new Users();
        users.setId("5d36d565bde542361407adfb");
        users.setUsername("shawn");
        usersRepository.save(users);


    }

    //添加一個新字段,(user其他字段不能傳空,否則將只有這個字段)
    @Test
    public void saveNew1() {
        Users users= new Users();
        users.setId("5d36d565bde542361407adfb");
        users.setUsername("shawn");
        users.setAge("22");
        usersRepository.save(users);


    }
    //添加一個新字段,其他的不修改可以先查詢
    @Test
    public void saveNew2() {
        String id="5d36d7e0bde5420f34116904";
        Optional<Users> byId = usersRepository.findById(id);
        Users users = byId.get();
        users.setUsername("shawn");
        System.out.println(users);
        usersRepository.save(users);


    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章