我对MongoDB的聚合框架感到有点困惑。
为了对特定字段进行不同的计数,我必须使用$addToSet
运算符,然后使用$unwind
,然后$group
使用$sum
我没有得到的是为什么Mongo没有$ count运算符来计算数组的长度(而不是使用$unwind
并执行所有其他步骤)
我现在所做的只是计算驱动程序中阵列的长度,但从技术上讲,我的驱动程序必须下载所有额外数据。
有没有理由没有$count
或$countUnique
运营商?或者有没有办法在Mongo中做到这一点,我只是不知道?
答案 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