2012-01-05 53 views
1

這是最新版本的couchbase服務器。couchdb查看/減少。有時候你可以返回值,有時候你不能。

最終目標是reduce/groupby將重複鍵的值聚合到具有數組值的單個行中。

無視圖結果減少/分組(在現實中有可能50行這樣發射的):

{ 
"total_rows": 3, 
"offset": 0, 
"rows": [ 
{ 
"id": "1806a62a75b82aa6071a8a7a95d1741d", 
"key": "064b6b4b-8e08-4806-b095-9e59495ac050", 
"value": "1806a62a75b82aa6071a8a7a95d1741d" 
}, 
{ 
"id": "47abb54bf31d39946117f6bfd1b088af", 
"key": "064b6b4b-8e08-4806-b095-9e59495ac050", 
"value": "47abb54bf31d39946117f6bfd1b088af" 
}, 
{ 
"id": "ed6a3dd3-27f9-4845-ac21-f8a5767ae90f", 
"key": "064b6b4b-8e08-4806-b095-9e59495ac050", 
"value": "ed6a3dd3-27f9-4845-ac21-f8a5767ae90f" 
} 
} 

與降低+ group_level = 1:

function(keys,values,re){ 
    return values; 
} 

產生從沙發上的錯誤與真實視圖中的實際50行左右(即使更少視圖行失敗)。沙發說了一些關於數據不夠快縮小的事情。然而,當視圖鍵是整數並且存在少量數據時,這種相同類型的東西可以工作JUST FINE。

有人可以向我解釋一下這個區別嗎?

回答

0

我幾乎總是會用「key」參數來查詢這個視圖,所以實際上沒有必要通過沙發來聚合值,它可以很容易和有效地完成應用程序。

2

由於存儲在內部b-tree數據格式中的性質,減少的值需要儘可能小。關於這是爲什麼,wiki中有一些信息。

如果你想識別唯一值,這需要在你的地圖功能中完成。在同一個wiki頁面上的這個section向您展示了一種您可以使用的方法。 (我敢肯定還有其他的)

+0

感謝有關錯誤的信息。糾正我,如果我錯了,但它看起來像鏈接技術是用重複鍵排除行。我不想消除重複,我想彙總它們的值。我可能會跳過reduce/group並在應用程序邏輯中進行聚合。我通常會用鍵=「sdasd」param來打這個視圖。 – jdc0589 2012-01-06 16:47:59

+0

它不會從數據庫中「刪除」重複項,僅從視圖輸出中刪除重複項。你想要完成什麼?你想計算特定密鑰出現的次數嗎? – 2012-01-06 18:40:34

+0

我一定把它描述得很差,我知道它不會改變數據庫。 – jdc0589 2012-01-06 20:30:12

相關問題