! filters 是给前端传过来的参数做组装,类似这种 休闲,手提包 这个就需要你自己组装了
-
Query query = new Query(); Criteria criteria = new Criteria(); List<Criteria> criteriaLists = new ArrayList <>(); if (CollectionUtils.isNotEmpty(filters)) { for (String filter : filters) { Pattern pattern=Pattern.compile("^.*"+filter+".*$", Pattern.CASE_INSENSITIVE); criteriaLists.add(Criteria.where("parameterValue.entries.value").regex(pattern)); } criteria.orOperator(criteriaLists.stream().toArray(Criteria[]::new)); } query.addCriteria(criteria);