我一直在玩Couchbase服務器,現在只是試圖將我的本地數據庫複製到Cloudant,但是我的地圖/縮減函數對獲得了相互衝突的結果來構建一組唯一標記與其相關的項目...地圖/減少Couchbase和CloudAnt之間的差異
// map.js
function(doc) {
if (doc.tags) {
for(var t in doc.tags) {
emit(doc.tags[t], doc._id);
}
}
}
// reduce.js
function(key,values,rereduce) {
if (!rereduce) {
var res=[];
for(var v in values) {
res.push(values[v]);
}
return res;
} else {
return values.length;
}
}
在雲底服務器這將返回JSON這樣的:
{"rows":[
{"key":"3d","value":["project1","project3","project8","project10"]},
{"key":"agents","value":["project2"]},
{"key":"fabrication","value":["project3","project5"]}
]}
這正是我想要的&預期。然而,在Cloudant副本相同的查詢,返回此:
{"rows":[
{"key":"3d","value":4},
{"key":"agents","value":1},
{"key":"fabrication","value":2}
]}
所以它在某種程度上只是返回值數組...高度混亂&很感激由幾μm& [R忍者任何見解的長度.. ;)
謝謝大家對於我們所有的見解! (抱歉,我花了很長時間回覆,被拉走了)我已經設法解決了這個問題,但仍然覺得在couchdb中沒有任何調試功能的情況下,有時很難完全控制reduce部分。能夠看到中間結果可以更好地理解發生的事情。 – toxi 2011-07-22 02:41:33