2016-05-08 8 views
1

lwwregレジスタ値をRiakのサーバー側のCRDT Mapに設定する構文は何ですか? : - 私はriak_dt_map.erlのソースコードに周りを見回したが、それでも正しい構文を把握することはできませんマップ上のレジスタフィールドを設定/更新するための構文

%% 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_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}], 
        ..... 

正しい構文についての参考になります。

答えて

1

正しい構文は以下の通りです - キーは、この場合にriak_dt_lwwregあるフィールドの種類を添付しなければならない、とassign操作はレジスタ値を指定する必要があります - ので、構文は次のようになります。

riak_kv_crdt:update(Obj,<<"testing">>,{crdt_op,riak_dt_map,{update, 
[{update,{<<"uname">>,riak_dt_lwwreg},{assign,<<"ahmed">>}}]},undefined}) 
+0

しかし、ここであなたがいますHTTPまたはPBで公開されているものではなく、_internal_ riak apiを使用します。それは変わるかもしれません。注意してください! –

関連する問題