在lwwreg服务器端设置CRDT Map寄存器值的语法是什么?我尝试了下面这样的代码,它似乎是无效的:
%% Obj is a map object to which we want to add/set a register "uname" with value
%% "ahmed"
riak_kv_crdt:update(Obj,<<"testing">>,{crdt_op,riak_dt_map,
{update,[{assign,<<"uname">>,<<"ahmed">>}]},undefined})关于操作无效,我得到了一个错误--我查看了riak_dt_map.erl的源代码,但仍然找不出正确的语法:
> riak_kv_crdt:update(Obj,<<"testing">>,{crdt_op,riak_dt_map,{update,
[{assign,<<"uname">>,<<"ahmed">>}]},undefined}).
** exception error: no function clause matching
riak_dt_map:apply_ops([{assign,<<"uname">>,<<"ahmed">>}],
{<<"testing">>,1},
{[{<<"testing">>,1}],
.....将欣赏关于正确语法的指针。
发布于 2016-05-08 17:44:11
弄明白了。正确的语法如下--在本例中,键必须附带字段的类型(在本例中为riak_dt_lwwreg ),并且必须为寄存器值指定assign操作-因此,语法如下:
riak_kv_crdt:update(Obj,<<"testing">>,{crdt_op,riak_dt_map,{update,
[{update,{<<"uname">>,riak_dt_lwwreg},{assign,<<"ahmed">>}}]},undefined})https://stackoverflow.com/questions/37101948
复制相似问题