Spring Data MongoDB - Criteria API OrOperator无法正常工作

时间:2013-04-07 18:33:00

标签: spring-data-mongodb

我正面临Spring Data MongoDB Criteria API orOperator问题。

以下是不规则动词的查询结果:(终端输出

> db.verb.find({'v2':'wrote'});
{ "_id" : ObjectId("5161a8adba8c6390849da453"), "v1" : "write", "v2" : "wrote", "v3" : "written" }

我使用 Spring Data MongoDB Criteria API v1v2值查询谓词:

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)

但遗憾的是verbList没有任何项目。

2 个答案:

答案 0 :(得分:32)

据我记得,为了使用orOperator你应该这样做:

Query query = new Query(new Criteria().orOperator(criteriaV1,criteriaV2));

答案 1 :(得分:1)

我们需要明确指定具有OR条件的新条件-尝试以下示例

Criteria criteria = Criteria.where("field1").is(val1).
                .andOperator(new Criteria().orOperator(Criteria.where("field2").is(filterVal),
                        Criteria.where("field3").is(filterVal)));