Spring data mongodb Spring数据MongoDB-标准API或运算符工作不正常
我面临着SpringDataMongoDB标准APISpring data mongodb Spring数据MongoDB-标准API或运算符工作不正常,spring-data-mongodb,Spring Data Mongodb,我面临着SpringDataMongoDB标准API或运算符的问题 以下是不规则动词的查询结果:(终端输出) 我使用Spring Data MongoDB Criteria API通过动词的v1或v2值查询动词: Criteria criteriaV1 = Criteria.where("v1").is(verb); Criteria criteriaV2 = Criteria.where("v2").is(verb); Query query = new Query(criteriaV1.or
或运算符的问题
以下是不规则动词的查询结果:(终端输出)
我使用Spring Data MongoDB Criteria API通过动词的v1
或v2
值查询动词:
Criteria criteriaV1 = Criteria.where("v1").is(verb);
Criteria criteriaV2 = Criteria.where("v2").is(verb);
Query query = new Query(criteriaV1.orOperator(criteriaV2));
List<Verb> verbList = mongoTemplate.find(query, Verb.class)
criteriaV1=标准,其中(“v1”)是(动词);
criteriaV2=Criteria.where(“v2”)是(动词);
Query Query=新查询(criteriaV1.orOperator(criteriaV2));
List verbList=mongoTemplate.find(查询,Verb.class)
但不幸的是,verbList
没有任何项目。据我所知,要使用orOperator,您应该执行以下操作:
Query query = new Query(new Criteria().orOperator(criteriaV1,criteriaV2));
Query Query=新查询(new Criteria().orOperator(criteriaV1,criteriaV2)) 我们需要使用或条件显式指定一个新标准-请使用下面的示例进行尝试
Criteria criteria = Criteria.where("field1").is(val1).
.andOperator(new Criteria().orOperator(Criteria.where("field2").is(filterVal),
Criteria.where("field3").is(filterVal)));
谢谢你的帮助;在检查应用程序日志之后,我看到第一个参数被用作和条件。因此,解决方案是使用您编写的新的条件实例,或者添加一个始终为真的条件。我们如何使用多个or运算符来搜索多个条件?运算符方法可以使用任意数量的参数
Criteria criteria = Criteria.where("field1").is(val1).
.andOperator(new Criteria().orOperator(Criteria.where("field2").is(filterVal),
Criteria.where("field3").is(filterVal)));