我需要您關於CouchDB reduce函數的幫助。 我有一些文檔,如:如何返回我在縮減函數中創建的JSON對象
{'about':'1', 'foo':'a1','bar':'qwe'}
{'about':'1', 'foo':'a1','bar':'rty'}
{'about':'1', 'foo':'a2','bar':'uio'}
{'about':'1', 'foo':'a1','bar':'iop'}
{'about':'2', 'foo':'b1','bar':'qsd'}
{'about':'2', 'foo':'b1','bar':'fgh'}
{'about':'3', 'foo':'c1','bar':'wxc'}
{'about':'3', 'foo':'c2','bar':'vbn'}
正如你可以看到它們都具有相同的密鑰,只是數值型動物。 我purpse是使用Map/Reduce和我的回報預期是:
'rows':[ 'keys':'1','value':{'1':{'foo':'a1', 'at':'rty'},
'2':{'foo':'a2', 'at':'uio'},
'3':{'foo':'a1', 'at':'iop'}}
'keys':'1','value':{'foo':'a1', 'bar','rty'}
...
'keys':'3','value':{'foo':'c2', 'bar',vbn'}
]
這裏是我的地圖功能的結果:
'rows':[ 'keys':'1','value':{'foo':'a1', 'bar','qwe'}
'keys':'1','value':{'foo':'a1', 'bar','rty'}
...
'keys':'3','value':{'foo':'c2', 'bar',vbn'}
]
但我Reduce函數不工作:
function(keys,values,rereduce){
var res= {};
var lastCheck = values[0];
for(i=0; i<values.length;++i)
{
value = values[i];
if (lastCheck.foo != value.foo)
{
res.append({'change':[i:lastCheck]});
}
lastCheck = value;
}
return res;
}
是否可以有我期望的或者我需要使用其他方式?
我看了一下名單功能,但克利不明白它是如何工作的,以及如何使用它的信息。 什麼解決方案最好? – franssois
如果你可以添加一個關於你的reduce函數的簡潔問題的新問題會更好。這個解決方案可能適用於一個小型數據庫,但對於超過幾兆字節的任何東西都是完全沒有效率的。 – Hans
@Akshat Jiwan Sharma非常感謝你,我錯過了爲了讓它工作而必須將url設計文檔的名稱給URL的事實!閱讀後,它似乎真的給我提供我需要的東西!謝謝 !對不起,我不能'投票',因爲我缺乏聲譽 – franssois