我一直在玩 Couchbase Server,现在只是尝试将我的本地数据库复制到 Cloudant,但是我的 map/reduce 函数对与他们的关联项目构建一组独特的标签时得到了冲突的结果......
// 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;
}
}
在 Cloudbase 服务器中,这将返回 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 ninjas 的任何见解......;)