2013-03-18 31 views
0

在下面的例子(http://docs.mongodb.org/manual/reference/aggregation/group/#_S_group)存在的源範例:「1」在組合中說什麼?

db.article.aggregate(
    { $group : { 
     _id : "$author", 
     docsPerAuthor : { $sum : 1 }, // here goes the question 
     viewsPerAuthor : { $sum : "$pageViews" } 
    }} 
); 

我的問題是:什麼1實際上是指(其中字段)?可以寫什麼呢?例如,它可以是$author嗎?

而且,在一般 - 我怎麼到「讀」此:viewsPerAuthor : { $sum : "$pageViews" } - 是「viewsPerAuthor是瀏覽量和」

+1

這意味着通過一個$ INC或一個開始,如果不設置字段。 – Sammaye 2013-03-18 10:00:34

+0

如果是這樣,$ pageViews'在下一行代表什麼?這很混亂。 – BreakPhreak 2013-03-18 10:01:10

+1

這意味着總計稱爲'pageViews'的那個字段的總和,所以你可以總結一個字段,或者你可以統計該字段在一個組中彙總的次數,或者在SQL中選擇COUNT(*)作爲docsPerAuthor ,SUM(pageViews)AS viewsPerAuthor FROM article GROUP BY author' – Sammaye 2013-03-18 10:10:52

回答

0

讓我們通過這點點滴滴:

docsPerAuthor : { $sum : 1 }, 

意味着該組中的每個文件(每個作者)做出一個新的領域被稱爲docsPerAuthor,要麼$inc它通過1或完成初始字段值1

viewsPerAuthor : { $sum : "$pageViews" } 

意味着該組中的每個文件總結匹配這一特殊羣體,這些文件的pageViews領域。

它基本上是一樣的:

SELECT COUNT(*) as docsPerAuthor, SUM(pageViews) AS viewsPerAuthor 
     FROM article GROUP BY author 
相關問題