将couchdb中的Reduce函数映射为对同一个键的值进行分组
我有以下格式的couchdb文件:将couchdb中的Reduce函数映射为对同一个键的值进行分组,couchdb,Couchdb,我有以下格式的couchdb文件: { "_id": "ac4a1c9ec5921b8537fcfe4e450046ab", "_rev": "4-4911f4615bcefa6dee88068bc8524930", "text": "hello how are you", "code": 111 } { "_id": "ac4a1c9ec5921b8537fcfe4e450057ee", "_rev": "3-f2c94a551065000ba7d468a5a7b26
{
"_id": "ac4a1c9ec5921b8537fcfe4e450046ab",
"_rev": "4-4911f4615bcefa6dee88068bc8524930",
"text": "hello how are you",
"code": 111
}
{
"_id": "ac4a1c9ec5921b8537fcfe4e450057ee",
"_rev": "3-f2c94a551065000ba7d468a5a7b2624a",
"text": "what is your age",
"code": 112
}
{
"_id": "ac4a1c9ec5921b8537fcfe4e45010d36",
"_rev": "1-9c1b7d02eb0497ca3696f2ccda7df2de",
"text": "keep it up",
"code": 112
}
我想写一个MapReduce,这样我就可以根据代码对文本字段进行分组
输出应该如下所示:
key Text
111 [hello how are you]
112 [what is your age , keep it up]
这很容易做到,可以使用以下代码 视图:
function (doc) {
emit(doc.code, doc.text);
}
减少
function (keys, values, rereduce) {
return values.join(",")
}
结果
{"rows":[
{"key":100,"value":"one hundred"},
{"key":123,"value":"hello test,hello world"}
]}
我在Cloudant上测试了它。如果CouchDB上有问题请告诉我谢谢,它在Coach db上起作用了。事实上,我对Coach db不太熟悉,所以我们也可以编写一个map reduce来显示每个代码中出现最多的单词,比如{“rows”:[{“key”:100,“value”:“one”},{“key”:123,“value”:“hello”}}}嗨,我认为用一个简单的map/reduce无法做到这一点。请将我的答案标记为接受,如果你认为它是足够的根据你原来的问题。