mongo db增删改查

// 分页查询

public Object userPage(String auth, int number, int size) {

  Criteria c1 = Criteria.where("auth").is(auth).and("type").is("1");
  Criteria c2 = Criteria.where("auth").is(auth).and("type").is("2");
  Criteria criteria = new Criteria();
  criteria.orOperator(c1, c2);  //or或者

  if (StringUtils.isNotBlank(cmd)) {
    criteria.and("cmd").is(cmd);
  }


  Sort sort = new Sort(Sort.Direction.DESC, "_id");

  Query query = new Query();
  query.addCriteria(criteria);
  query.with(sort);  //排序

  long count = mongoTemplate.count(query, User.class);

  query.skip(number * size);  //skip分页
  query.limit(size);

  List<User> list = mongoTemplate.find(query, User.class);

  Pageable pageable = PageRequest.of(number, size);
  Page<Object> page = new PageImpl<Object>(list, pageable, count);

  return page;

}

// 修改

private void updateByAuth(String auth, String dataTime) {
Criteria criteria = Criteria.where("auth").is(auth).and("status").is(false);
Sort sort = new Sort(Sort.Direction.ASC, "_id");

Query query = new Query();
query.addCriteria(criteria);
query.with(sort);

Update update = new Update();
update.set("updateTime", dataTime);

mongoTemplate.updateMulti(query, update, User.class);  //修改
}

// 删除

public void delete(UserVo vo) {
  Optional<User> po = userRepository.findById(vo.getId());
  if (po.isPresent()) {
    Criteria criteria = Criteria.where("name").is(po.get().getName());
    Query query = new Query(criteria);
    mongoTemplate.remove(query, User.class);
    userRepository.delete(po.get());
  } else {
    throw new RuntimeException(MessageConstant.INVALID_DATA);
  }
}

猜你喜欢

转载自www.cnblogs.com/caoerxuan/p/11059375.html
今日推荐