MongoDB聚合框架:为什么我必须使用展开?为什么没有$ count?

时间:2014-03-31 21:44:32

标签: mongodb aggregation-framework

我对MongoDB的聚合框架感到有点困惑。

为了对特定字段进行不同的计数,我必须使用$addToSet运算符,然后使用$unwind,然后$group使用$sum

我没有得到的是为什么Mongo没有$ count运算符来计算数组的长度(而不是使用$unwind并执行所有其他步骤)

我现在所做的只是计算驱动程序中阵列的长度,但从技术上讲,我的驱动程序必须下载所有额外数据。

有没有理由没有$count$countUnique运营商?或者有没有办法在Mongo中做到这一点,我只是不知道?

1 个答案:

答案 0 :(得分:1)

即将推出的2.6版本会添加一个新的运算符$size,它会为您提供数组的大小,并且可以在$project $group之后的$addToSet阶段使用你想要的数字。

参考文献:

http://docs.mongodb.org/master/release-notes/2.6/#aggregation-enhancements http://docs.mongodb.org/master/reference/operator/aggregation/size/#exp._S_size