我有一种方法可用于过滤Mongo的一些结果。
public List<Person> findPersons(String firstName, String lastName, String nickname) {
Criteria criteria = new Criteria();
if (!isNullOrEmpty(firstName)) {
criteria.and(FIRST_NAME).is(firstName);
}
if (!isNullOrEmpty(lastName)) {
criteria.and(LAST_NAME).is(lastName);
}
if (!isNullOrEmpty(nickname)) {
criteria.and(NICKNAME).is(nickname);
}
Query query = new Query(criteria);
List<Person> persons = mongoOperations.findAll(query, Person.class);
return persons;
}
我这样做是因为有时firstName,lastName和nickname可以为null。我想避免使用isNullOrEmpty。我找到了elemMatch,但我不确定这是否对我有帮助。