2013-04-07 33 views
10

我正面臨Spring Data MongoDB Criteria API orOperator問題。Spring Data MongoDB - Criteria API OrOperator無法正常工作

下面是不規則動詞查詢結果:(端子輸出

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

我查詢使用春數據MongoDB的標準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沒有任何項目。

回答

29

至於我記得爲了使用orOperator你應該做的:

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

感謝您的幫助;在檢查應用程序日誌後,我看到第一個參數被用作AND標準。所以解決方案是使用像你寫的標準的新實例或添加一個始終爲真的條件。 – talha06 2013-04-07 21:23:21

+0

我們如何使用多個orOperator來搜索多個標準? – 2015-11-02 19:21:24