2012-01-05 68 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

相关问题