我的数据库中有以下数据:
| value1 | value2 |
|----------+----------|
| 1 | a |
| 1 | b |
| 2 | a |
| 3 | c |
| 3 | d |
|----------+----------|
我想要的输出是{"key":1,"value":[a,b]},{"key":2,"value":[a]},{"key":3,"value":[c,d]}
我写了这个地图功能(但不确定这是否正确)
function(doc) {
emit(doc.value1,doc.value2);
}
...但我错过了reduce函数。谢谢你的帮助!
答案 0 :(得分:0)
不确定是否可以/应该使用reduce功能。
但是,您可以使用lists重新格式化输出。尝试以下列表功能:
function (head, req) {
var row,
returnObj = {};
while (row = getRow()) {
if(returnObj[row.key]){
returnObj[row.key].push(row.value);
}else{
returnObj[row.key] = [row.value];
}
}
send(JSON.stringify(returnObj));
};
输出应如下所示:
{
1: [
"a",
"b"
],
2: [
"a"
],
3: [
"c",
"d"
]
}
希望有所帮助。