MongoRepository 基本使用

    技术2022-07-11  142

    转载自: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); }

     

    Processed: 0.023, SQL: 9