我有一个集合,其文档每个都有一个数组。 我想写一个查询来分析这个数组大小的分布。
结果我期待的是哈希数组{size_of_array => count_of_document}
[
{0 => 101},
{1 => 79},
{2 => 46},
{3 => 19},
{4 => 8},
{5 => 2},
{6 => 1}
]
我如何在纯Mongo和Mongoid中写这个?
提前谢谢!
发现了一个非常重复的问题: Use mongodb aggregation framework to group by length of array
这篇文章建议使用unwind和group来计算数组的长度。
答案 0 :(得分:3)
MongoDB的开发版本2.5.3为聚合管道引入了$ size运算符。如果您使用该版本,可以尝试:
db.collection.aggregate( [ { $group: { _id: { $size: "$myArray" }, count: { $sum: 1 } } } ] )
如前所述,$ size运算符目前在2.5.3版本中可用,用于开发/测试目的。
我担心我对Mongoid并不熟悉。
希望这有帮助。
凯