2016-04-29 34 views
1

我使用spring mongodb java API。我有一個關於orOperator的問題。 當我使用這樣的標準時,我得到nullMongoDB奇怪的行爲,或者運營商

Criteria c1 = Criteria.where(field2).regex("John", "i"); 
Criteria c2 = Criteria.where(field1).regex("John", "i"); 
new Criteria().orOperator(c1, c1); 

而使用給出了我的預期。

new Criteria().andOperator(c1, c1); 

我糊塗一點點,從Bool'e邏輯原因,當我說11我應該得到1。你有什麼推理嗎?

只是想補充一點,使用以下內容會產生預期結果。

new Criteria().orOperator(c1); 
+0

它是一個錯字新的Criteria()。和操作符(c1,c1); ? 它不應該是新的標準()。和操作符(c1,c2); – Kennet

+0

不,我想知道爲什麼我得到空,當我使用'orOperator'具有相同的雙重標準。 –

回答

0

例如:獲取任何用戶

query.addCriteria(
     Criteria.where("role").is("user") 
      .orOperator(Criteria.where("role").is("manager")) 
      .orOperator(Criteria.where("role").is("admin")) 
); 

注:名稱是操作不是操作。