@Autowired
private MongoTemplate mongoTemplate;
User:封装的对象
插入:mongoTemplate.insert(user);
根据id查询:mongoTemplate.findById(id, User.class);
查询所有:mongoTemplate.findAll(User.class);
条件查询:
Query query = new Query(
Criteria.where("name").is("迪丽热巴")
.and("age").is(25));
List<User> userList = mongoTemplate.find(query, User.class);
模糊查询:
String name = "李";
String regex = String.format("%s%s%s","^.*" , name , ".$");
// 定义正则表达式 Pattern.CASE_INSENSITIVE 忽略大小写
Pattern pattern = Pattern.compile(regex , Pattern.CASE_INSENSITIVE);
Query query = new Query(Criteria.where("name").regex(pattern));
List<User> userList = mongoTemplate.find(query, User.class);
分页查询:
Integer pageNum = 1;
Integer pageSize = 3;
// skip跳过多少个,limit 需要查询多少
List<User> userList = mongoTemplate.find(
query.skip((pageNum - 1) * pageSize).limit(pageSize), User.class);
修改:
@Test
void update() {
User user = mongoTemplate.findById("456189465144321854", User.class);
user.setName("张三");
user.setAge(21);
// where
Query query = new Query(Criteria.where("_id").is("456189465144321854"));
// 修改信息
Update update = new Update()
.set("name",user.getName()).set("age",user.getAge());
UpdateResult updateResult = mongoTemplate.upsert(query, update, User.class);
System.out.println(updateResult.getModifiedCount());
}
删除:
@Test
void delete() {
Query query = new Query(Criteria.where("name").is("张三"));
DeleteResult deleteResult = mongoTemplate.remove(query, User.class);
System.out.println(deleteResult.getDeletedCount());
}