2013-07-06 200 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对象成为地图。谢谢。 –