2013-07-06 198 views
0

在Java mongo驅動程序中,您如何執行or搜索?Java Mongo聚合或函數?

在mongo彙總框架中,它是documented作爲$or。但是當我嘗試使用它作爲匹配標準時,它會引發無效的操作異常。

於是,我就省略了操作和使用以下,(這是Groovy代碼,但使用Java驅動程序)

def r = getCollection(collectionName).aggregate(
     [$match: [transactionType: [or: [1, 2]]], 
     [$group: 
       [_id: null, 
         sum: [$sum: '$property']] 
     ] 
).results() 

但是,這並不工作。我也嘗試完全刪除操作符,只使用值列表,但這也行不通。

我試過尋找拋出Java Mongo驅動程序文檔,但沒有發現任何提及這一點。任何人都知道在這裏執行or操作的正確方法?

回答

2

我認爲問題在於你構造你的「或」聲明的方式。下面的工作是否會起作用?

[$match: [$or: [transactionType: 1], 
       [transactionType: 2]]], 
[$group ..... 
+0

這可以起作用,只需稍作更改即可使$ match對象成爲地圖。謝謝。 –