我正在研究riak-erlang客户端,
我做了以下事情......
3> Mapf = fun(Obj,_,_) -> [riak_object:get_value(Obj)] end.
#Fun<erl_eval.18.82930912>
4>
4> {ok, [{0,[R]}]} = riakc_pb_socket:mapred(Pid,<<"tst">>, [{map{qfun,Mapf},none,true}]).
** exception error: no match of right hand side value {ok,[{0,[<<"2">>,<<"4">>,<<"6">>,<<"3">>,<<"5">>,<<"1">>]}]}
如何解决此问题
以及如何解决这类问题
{ok, [{0,[S]}]} = riakc_pb_socket:mapred(Pid,<<"test">>,[{map, {qfun,Maps},none,true}]).
** exception error: no match of right hand side value {ok,[{0,
[<<"{\"age\": 24, \"name\": \"krishna\"}">>,
<<"{\"age\": 29, \"name\": \"sharat\"}">>,
<<"{\"age\": 27, \"name\": \"anil\"}">>,
<<"{\"age\": 28, \"name\": \"kumar\"}">>,
<<"{\"age\": 24, \"name\": \"gopi\"}">>,
<<"{\"age\": 25, \"name\": \"ramesh\"}">>]}]}
如果我只想要年龄,那么年龄是平均的。如何编写地图功能。
答案 0 :(得分:0)
您有模式匹配问题。您尝试使用[R] = [<<data…>>,…]
两次匹配列表。
[R]
实际匹配1个元素的列表,元素为R
您需要删除这些括号以匹配整个数据结构,如:{ok, [{0,R}]
。