MongoDB中聚合框架的$ group运算符中的自定义函数

时间:2015-05-27 12:40:11

标签: mongodb aggregation-framework

我想使用一个自定义的$sum(让我们称之为$boolSum)函数来返回数组中true元素的数量。 e.g。

group :{
          _id: {
                  a : '$a'
                  b : '$b',
                  c : '$c'
               },
              d1: { $boolSum : '$d1'}
              d2: { $boolSum : '$d2'}
        }

但似乎没有办法定义boolSum功能。我试图在system.js中添加新记录,但它无法正常工作。

在MongoDB中,是否可以在聚合框架的$group运算符中切割函数?

1 个答案:

答案 0 :(得分:3)

  

是否可以在聚合框架的$ group运算符中切割函数

不,不是......

  

我想使用一个自定义的$ sum(让我们称之为$ boolSum)函数,它返回数组中true元素的数量

...但您可以将$sum与其他运算符(例如$cond)结合使用以获得所需的结果:

[2015-05-27 12:52:42 - SimpleCalcTest] Launching instrumentation android.test.InstrumentationTestRunner on 0123456789ABCDEF
[2015-05-27 12:52:42 - SimpleCalcTest] Test run failed: Instrumentation run failed due to 'Process crashed.'
[2015-05-27 12:52:42 - SimpleCalcTest] Test run finished
[2015-05-27 12:52:43 - SimpleCalcTest] Sending test information to Eclipse
[2015-05-27 12:52:44 - SimpleCalcTest] Test run failed: Instrumentation run failed due to 'java.lang.NumberFormatException'
[2015-05-27 12:52:44 - SimpleCalcTest] Test run finished

{$sum: {$cond:["$someBooleanField",1,0]}}