9
我試圖獲得具有不同大小數組的記錄數的列表。我想獲得數組大小分佈的所有記錄,所以我可以建立這樣的直方圖:到目前爲止使用使用MongoDB聚合框架獲取數組大小的直方圖的最快方法
{hubs : [{stuff:0, id:6}, {stuff:1"}, .... ]}
{hubs : [{stuff:0, id:6}]}`
:
| *
| *
documents | * *
| * * *
|_*__*__*___*__*___
2 5 6 23 47
Array Size
因此RAW文件是這個樣子聚合框架和一些幫助here我拿出
db.sitedata.aggregate([{ $unwind:'$hubs'},
{ $group : {_id:'$_id', count:{$sum:1}}},
{ $group : {_id:'$count', count:{$sum:1}}},
{ $sort : {_id: 1}}])
這似乎給我我想要的結果,但速度不是很快。我想知道是否有這樣的事情可以做,這可能不需要兩個組呼。語法是錯在這裏,但我想要做的就是把在第一場_id的計數值:
db.sitedata.aggregate([{ $unwind:'$hubs'},
{ $group : {_id:{$count:$hubs}, count:1}},
{ $sort : { _id: 1 }}])
沒有辦法一次完成此操作,因爲在完成第一個分組計數之前,您無法開始計算/分組結果。你使用的是什麼版本的MongoDB?順便提一下, –
,需要多長時間? –
好的,我懷疑可能是這樣(嵌套不允許,只有鏈接)。這需要大約4秒鐘,這並不算太壞,但我希望獲得亞軍。我可以調整我的數據,而不是現在調整查詢。 – Scott