我是couchdb的新手。我写了一个简单的mapreduce视图。
simplemap:
{
"map":"function(doc) { emit(doc.name, doc.marks); }",
"reduce": "function(keys,values) { return sum(values);}"
}
我使用以下命令执行它:
curl http://localhost:5984/student/_design/student1/_view/simplemap
执行了查询。但是,当我执行以下命令时,我收到错误。
curl http://localhost:5984/student/_design/student1/_view/simplemap?key="Kruti"&group=true
我的地图发出以下数值。
{"total_rows":6,"offset":0,"rows":[
{"id":"2c1e1641694b8eeed8f88088ea0033b0","key":"Charupriya","value":90},
{"id":"d763d3f8d41aff068eb2bff9470007a7","key":"Charupriya","value":94},
{"id":"2c1e1641694b8eeed8f88088ea002556","key":"Kruti","value":96},
{"id":"d763d3f8d41aff068eb2bff94700037d","key":"Kruti","value":92},
{"id":"2c1e1641694b8eeed8f88088ea002be9","key":"Neha","value":98},
{"id":"d763d3f8d41aff068eb2bff94700053b","key":"Neha","value":98}
]}
任何人都可以告诉我,为什么我的查询带有关键参数不起作用。
答案 0 :(得分:0)
看起来你的reduce函数没有运行,这是我在查询时simplemap
得到的结果:
{"rows":[
{"key":null,"value":235}
]}
除非使用group
参数调用,否则reduce结果应返回一个值。所以你不知道你没有做减少,你不能使用group=true
来减少未减少的视图。
ps:如果你想使用内置的_sum函数对值进行求和,它比你自己编写的所有内容快得多。
答案 1 :(得分:0)
搜索并阅读几个链接后,我发现当键是字符串值时,必须将其作为
给出key=\"Kruti\"
通过这样做,它起作用了。