@Autowired
private MongoTemplate mongoTemplate; //注入mongotemplate
/**
* 根据条件查询符合条件的记录
*/
@Override
public List<MemberLabel> findByCondition(MemberLabel memberLabel) {
int currentPage=memberLabel.getCurrentPage();//当前页
int pageSize=memberLabel.getPageSize();//页面大小
String sortType=memberLabel.getSortType();//排序类型
String sortField=memberLabel.getSortField();//排序字段
Query query=getMongoQuery(memberLabel);//生成Query(自定义方法)
if("asc".equals(sortType)){
query.with(new Sort(Sort.Direction.ASC,sortField));//添加排序功能
}else{
query.with(new Sort(Sort.Direction.DESC,sortField));//添加排序功能
}
query.skip((currentPage-1)*pageSize);//使用skip加limit实现分页
query.limit(pageSize);
System.out.println(query);//可以直接打印query,输出格式为BSON格式
List<MemberLabel> lists=mongoTemplate.find(query, MemberLabel.class);//调用mongotemplate的find方法,查询记录。
return lists;
}
/**
* 根据条件生成Query
*其中包含(A OR B)and (C OR D)查询 ;A<X<B 查询;in 查询;is查询;模糊查询
*/
public Query getMongoQuery(Object obj){
Query query = new Query();
if(null == obj){
return query;
}
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[]