简单的例子
需要注意的是,MongoDB的current 从0开始
public MGPage<ScriptResultMGBO> page(ScriptResultPageQuery query, Integer current, Integer size) {
//查询参数配置
Criteria criteria = new Criteria();
criteria.and("taskRecordId").is(query.getTaskRecordId());
if (ObjectUtil.*isNotEmpty*(query.getScriptResultStatus())) {
criteria.and("scriptResultStatus").is(query.getScriptResultStatus());
}
criteria.and("deviceId").is(query.getDeviceId());
String like = query.getLike();
if (StrUtil.*isNotEmpty*(like)) {
Pattern pattern = Pattern.compile("^.*" + like + ".*$",Pattern.CASE_INSENSITIVE);
criteria.orOperator(
Criteria.*where*("caseName").regex(pattern),
Criteria.*where*("scriptName").regex(pattern)
);
}
Query queryBuilder = new Query(criteria);
Long totalSize = mongoTemplate.count(queryBuilder, ScriptResultMGBO.class, "scriptResult");
if (totalSize.equals(0l)) {
return new MGPage<>(page, size);
}
// 分页参数
Pageable pageable = PageRequest.*of*(page - 1, size, Sort.by(Sort.Direction.*ASC*, "scriptStartTime"));
queryBuilder.with(pageable);
List<ScriptResultMGBO> list = mongoTemplate.find(queryBuilder, ScriptResultMGBO.class, "scriptResult");
return new MGPage<>(current, size, totalSize, list);
}