轉載自: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);
}