Java MongoDB поиск значения в нескольких полях

У меня есть метод Java

 public List<Project> tagSearch(String searchCriteria){
    Query query = new Query();
    return mongoTemplate.find(query.addCriteria(Criteria.where("projectTag")
            .regex(searchCriteria,"i")), Project.class, COLLECTION_NAME);
}

здесь он ищет значение searchCriteria в поле projectTag. Я хочу найти это значение в нескольких полях. например другое поле projectName

ценим вашу помощь.

1 ответ

Вы можете использовать код ниже

final Criteria criteria = new Criteria();
criteria.orOperator(Criteria.where("projectTag").regex(searchCriteria, "i"),
                    Criteria.where("projectName").regex(searchCriteria, "i"));
final Query query = new Query(criteria);
final List<Project> projectEntities = mongoTemplate.find(query, Project.class);

Используйте orOperator

Вы можете использовать как можно больше критериев в orOperator. Тогда это будет выглядеть так:

Query query = new Query();
Criteria criteria1 = new Criteria().where("projectTag").regex(searchCriteria, "i");
Criteria criteria2 = new Criteria().where("projectName").regex(searchCriteria, "i");
query.addCriteria(new Criteria().orOperator(c1,c2));
return mongoTemplate.find(query, Project.class, COLLECTION_NAME);
Другие вопросы по тегам