转载自: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) 加入多条数据

以下演示方法的使用,实际上方法传参方式就几个,可以举一反三,以上方法都可以自己尝试使用。

   //插入文档中嵌入一个文档@Testpublic 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);}//批量插入@Testpublic 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);}//查询全部@Testpublic void findALL() {List<Users> all = usersRepository.findAll();for (Users users : all) {System.out.println(users);}}//查询条数@Testpublic void count() {long count = usersRepository.count();System.out.println(count);}//条件统计条数@Testpublic void countByExample() {Users users = new Users();users.setUsername("xiaohao55");Example<Users> usersExample = Example.of(users);long count = usersRepository.count(usersExample);System.out.println(count);}@Testpublic void exists() {Users users = new Users();users.setUsername("xiaohao");Example<Users> usersExample = Example.of(users);boolean exists = usersRepository.exists(usersExample);System.out.println(exists);}@Testpublic void existsById() {String id = "5d36d565bde542361407adfb";boolean exists = usersRepository.existsById(id);System.out.println(exists);}//查询喜欢运动中有跑步,和篮球的用户@Testpublic 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.saUsers user = (Users) one.get();System.out.println(user);}//排序查询,这里查找姓名按照一个个字段逐一比较@Testpublic 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@Testpublic 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);}}//批量查询@Testpublic 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更新@Testpublic void save() {Users users= new Users();users.setId("5d36d565bde542361407adfb");users.setUsername("shawn");usersRepository.save(users);}//添加一个新字段,(user其他字段不能传空,否则将只有这个字段)@Testpublic void saveNew1() {Users users= new Users();users.setId("5d36d565bde542361407adfb");users.setUsername("shawn");users.setAge("22");usersRepository.save(users);}//添加一个新字段,其他的不修改可以先查询@Testpublic 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);}

MongoRepository 基本使用相关推荐

  1. mongorepository查询条件_MongoDB动态条件之分页查询

    一.使用QueryByExampleExecutor 1. 继承MongoRepositorypublic interface StudentRepository extends MongoRepos ...

  2. Springboot-mongodb MongoRepository接口 save方法 详解

    问题: 我们都知道 mongodb 有两种添加数据的方式  一种 就是  save 方法   另外一种 insert  方法 这里两个方法 唯一的区别就是 insert:当主键"_id&qu ...

  3. MongoRepository

    ava操作MongoDB采用MongoRepository仓库进行条件查询 1.实体类: public class Person implements Serializable{     privat ...

  4. MongoRepository自定义条件及分页查询代码

    @Autowiredprivate PassengerRepository passengerRepository;public PageInfo<Passenger> getPassen ...

  5. mongorepository查询条件_MongoRepository实现增删改查和复杂查询【支持的查询类型】...

    与HibernateRepository类似,通过继承MongoRepository接口,我们可以非常方便地实现对一个对象的增删改查,要使用Repository的功能,先继承MongoReposito ...

  6. mongorepository查询条件_Java操作MongoDB采用MongoRepository仓库进行条件查询 | 学步园...

    1.实体类: publicclassPersonimplementsSerializable{ /** * */ private static final long serialVersionUID  ...

  7. 22-08-08 西安 尚医通(04)MongoDB命令、MongoTemplate、MongoRepository

    MongoDB 1.NoSQL NoSQL(NoSQL = Not Only SQL),指的是非关系型的数据库 为什么使用NoSQL : 1.对数据库高并发读写.请求量大 2.对海量数据的高效率存储和 ...

  8. 总结MongoDB采用MongoRepository进行查询

    Java操作MongoDB采用MongoRepository进行条件查询 1)  实体类实现Serializable接口 @Document(collection = "Memo" ...

  9. mongorepository简单使用

    ​ 添加mongodb依赖 项目根目录 pom.xml添加依赖 spring-boot-starter-data-mongodb <dependency><groupId>or ...

  10. mongorepository查询条件_mongorepository分页条件查询

    最近项目有用到mongodb,也是经历了从不会到满百度的查资料,对mongodb有了些许的理解,项目里面总想着偷懒,不想使用template的类去拼写,就找了spring封装好的mongoreposi ...

最新文章

  1. Delphi XE2 之 FireMonkey 入门(23) - 数据绑定: TBindingsList: TBindExpression
  2. BaseRecyclerViewAdapterHelper结合autolayout使用
  3. LINQ 中的 select
  4. Python学习(三)基础
  5. php中间件怎么使用,laravel框架中间件简单使用方法示例
  6. 微软发布Silverlight 4新版并更新Silverlight Tools和SDK
  7. 制作一个模拟Windows启动界面的文本进度条python
  8. 在精简版的xp添加删除程序里面没有IIS的解决方法
  9. iOS面试开发-这样的简历才是面试官想看的
  10. 迟来太久的2020年总结与2021展望
  11. 2022最新7个开源Kubernetes(k8s)开发工具
  12. 想做赴日软件工程师,为公为私
  13. 信用卡债务属于共同债务吗
  14. 大卫艾克~雄狮醒来2:实相的本质(中字)
  15. Injected and Delivered: Fabricating Implicit Control over Actuation Systems by Spoofing Inertial Sen
  16. layui外部引入_layui use 定义js外部引用函数的方法
  17. 考试 --微信小程序学习用demo:考证通,在线题库类小程序
  18. router vue 页签文字_vueRouter点击打开新页签
  19. Flannel和Docker网络不通定位问题
  20. 高通AR 的cloud研究

热门文章

  1. 原创深度精华好文,网络是如何工作的?建议静下心好好看,收获会颇丰!
  2. c++day06 多态的使用
  3. IMX7 通过Linux使用SDCard烧录UBOOT、kernel、dtb、rootfs详解
  4. 数字时代下网络安全的重要性
  5. outline的创建与使用
  6. # Day3 2023.3.18
  7. python 并发编程---线程
  8. Mac virtualBox 微软官方Win7镜像下载安装全过程
  9. (多级缓存)多级缓存
  10. 【DB】有赞数据库自动化运维实践之路