将couchdb中的Reduce函数映射为对同一个键的值进行分组

将couchdb中的Reduce函数映射为对同一个键的值进行分组,couchdb,Couchdb,我有以下格式的couchdb文件: { "_id": "ac4a1c9ec5921b8537fcfe4e450046ab", "_rev": "4-4911f4615bcefa6dee88068bc8524930", "text": "hello how are you", "code": 111 } { "_id": "ac4a1c9ec5921b8537fcfe4e450057ee", "_rev": "3-f2c94a551065000ba7d468a5a7b26

我有以下格式的couchdb文件:

{
  "_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无法做到这一点。请将我的答案标记为接受,如果你认为它是足够的根据你原来的问题。