2012-07-25 70 views
3

減少假設我們有幾個文件在CouchDB中,像這樣的CouchDB的複雜關鍵

{ page: 'home', country: 'EN', timestamp: 15448 } 
{ page: 'search', country: 'FR', timestamp: 15448 } 
{ page: 'search', country: 'EN', timestamp: 15448 } 
{ page: 'home', country: 'DE', timestamp: 15457 } 

每個文件代表一個國家與一個給定的時間戳的瀏覽量。我想要做的是查詢這些文檔,給定頁面和時間戳範圍,獲取該範圍的每個國家/地區的綜合瀏覽量。

我想出了這樣做是這樣的地圖功能

function (doc) { 
    emit([doc.page, doc.timestamp, doc.country], 1) 
} 

_sum爲減少功能。

我可以用例如查詢視圖。 startkey=["home",15448]&endkey=["home", 15448, {}],但這會返回每個國家/地區的綜合瀏覽量,這是比我需要的更多信息。 (只是每個國家在特定時段的綜合瀏覽量)。

回答

2

只是暗褐色發射國家

function (doc) 
{ 
    emit([doc.page, doc.timestamp], 1) 
} 

減少功能

function (keys, value) 
{ 
    return sum(value); 
} 
+1

如何是,從發射不同([doc.page,doc.timestamp,doc.country],1)? 兩者都會產生每個國家/地區每天的綜合瀏覽量,而不是每個國家/地區在特定時段的綜合瀏覽量。 – 2012-07-31 00:32:59