聚合框架它是數據聚合的一個新框架,其概念類似於數據處理的管道。 每個文檔通過一個由多個節點組成的管道,每個節點有自己特殊的功能(分組、過濾等),文檔經過管道處理后,最后輸出相應的結果。
管道基本的功能有兩個:
一是對文檔進行“過濾”,也就是篩選出符合條件的文檔;
二是對文檔進行“變換”,也就是改變文檔的輸出形式。
errmsg:Exceeded memory limit for $group,but didn't allow external Sort.Pass allowDiskuse:true
錯誤詳細信息:

我這次用的表的數據量是:大約有四百萬數據

我要查的是:用戶接受信息最多的前五個用戶

寫完分析語句,嚴格按照語法寫的;
既然出現問題,我們來一下Debug(咱們碼農有力量)
如果管道沒有給出預期結果,就需要進行調試,調試時,可以先只指定第一個管道操作符,如果這樣得到了預期結果,那就再指定第二個管道操作符,以上面的例子說,先試着$project 操作符進行聚合,如果這個操作符結果是有效的,就在添加 $group 操作符,
如果結果還是有效的,就再添加 $sort,最后再添加 $limit 操作符,這樣就可以逐步定位到造成問題的操作符了。

逐步調試發現沒問題 不是語法的錯誤
麻蛋,原因是聚合的結果必須要限制在16M以內操作,(mongodb支持的最大影響信息的大小),否則必須放在磁盤中做緩存(allowDiskUse=True)。

最后把要統計的數據給搞出來了,喜大普奔。。。。
