1

我有一个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);
}

这里是在 projectTag 字段中搜索 searchCriteria 值。我想在多个字段中搜索该值。例如另一个字段 projectName

感谢您的帮助。

4

2 回答 2

1

使用or 运算符

您可以在 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);
于 2014-08-16T17:54:51.857 回答
0

您可以使用以下代码

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);
于 2019-07-19T14:30:10.993 回答