2013-08-01 132 views
1

我有一些文件,如:MongoDB的聚合框架來計算不同的數組項

{ tags: { first_cat: ["a", "b", "c"], second_cat : ["1","2","3"]}} 
{ tags: { first_cat: ["d", "b", "a"], second_cat : ["1"]}} 

我需要的是這樣的:

{ first_cat: [{"a" : 2}, {"b" : 2}, {"c" : 1}, {"d" : 1}], second_cat: [{"1" : 2, "2": 1, "3":1}] } 

隨着M/R這是很容易做到的(但速度慢) ,是否有可能通過聚合框架獲得類似的結果?

+0

可能;試試看看你做了什麼,因爲它似乎沒有對此做過多的研究。你會想看看'$ unwind'和'$ group'流水線操作符。 – JohnnyHK

回答

0

由於無法將任意值"a"轉換爲密鑰{ "a": 2 },因此無法對聚合框架執行此操作。您將需要重新設計您的模式。