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