Skip to content

Instantly share code, notes, and snippets.

@russelldb
Last active December 19, 2015 15:38
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save russelldb/3c9613d1067e0cd71736 to your computer and use it in GitHub Desktop.
Save russelldb/3c9613d1067e0cd71736 to your computer and use it in GitHub Desktop.
A sample session working with the map from within erlang console And from curl and riak
(riak@127.0.0.1)1> M = riak_dt_multi:new().
{{[],[]},[]}
(riak@127.0.0.1)2> riak_dt_multi:value(M).
[]
(riak@127.0.0.1)3> M1 = riak_dt_multi:update({update, [{add, {gold, riak_dt_pncounter}},
{add, {stone, riak_dt_pncounter}}]}, actor1, M).
{{[{actor1,1}],
[{{gold,riak_dt_pncounter},{1,[{1,1}]}},
{{stone,riak_dt_pncounter},{1,[{1,1}]}}]},
[{{gold,riak_dt_pncounter},{[],[]}},
{{stone,riak_dt_pncounter},{[],[]}}]}
(riak@127.0.0.1)4> riak_dt_multi:value(M1).
[{{stone,riak_dt_pncounter},0},{{gold,riak_dt_pncounter},0}]
(riak@127.0.0.1)5> M2 = riak_dt_multi:update({update, [{update, {gold, riak_dt_pncounter}, {increment, 100}},
{update, {stone, riak_dt_pncounter}, {increment, 50}}]}, actor1, M1).
{{[{actor1,1}],
[{{gold,riak_dt_pncounter},{1,[{1,2}]}},
{{stone,riak_dt_pncounter},{1,[{1,2}]}}]},
[{{gold,riak_dt_pncounter},{[{actor1,100}],[]}},
{{stone,riak_dt_pncounter},{[{actor1,50}],[]}}]}
(riak@127.0.0.1)6> riak_dt_multi:value(M1).
[{{stone,riak_dt_pncounter},0},{{gold,riak_dt_pncounter},0}]
(riak@127.0.0.1)7> riak_dt_multi:value(M2).
[{{stone,riak_dt_pncounter},50},
{{gold,riak_dt_pncounter},100}]
(riak@127.0.0.1)8> M3 = riak_dt_multi:update({update, [{update, {weapons, riak_dt_vvorset}, {add, "Halberd"}},
{update, {friends, riak_dt_vvorset}, {add, dave}}]}, actor1, M2).
{{[{actor1,1}],
[{{friends,riak_dt_vvorset},{1,[{1,1}]}},
{{gold,riak_dt_pncounter},{1,[{1,2}]}},
{{stone,riak_dt_pncounter},{1,[{1,2}]}},
{{weapons,riak_dt_vvorset},{1,[{1,1}]}}]},
[{{friends,riak_dt_vvorset},
{[{actor1,1}],[{dave,{1,[{1,1}]}}]}},
{{gold,riak_dt_pncounter},{[{actor1,100}],[]}},
{{stone,riak_dt_pncounter},{[{actor1,50}],[]}},
{{weapons,riak_dt_vvorset},
{[{actor1,1}],[{"Halberd",{1,[{1,1}]}}]}}]}
(riak@127.0.0.1)9> riak_dt_multi:value(M3).
[{{weapons,riak_dt_vvorset},["Halberd"]},
{{stone,riak_dt_pncounter},50},
{{gold,riak_dt_pncounter},100},
{{friends,riak_dt_vvorset},[dave]}]
(riak@127.0.0.1)12> M4 = riak_dt_multi:update({update, [{update, {profile, riak_dt_multi}, {update,
[{update, {charisma, riak_dt_pncounter}, {increment, 1000}},
{update, {magic, riak_dt_pncounter}, {increment, 999}},
{update, {strength, riak_dt_pncounter}, {increment, 90}}]}}]}, actor1, M3).
{{[{actor1,1}],
[{{friends,riak_dt_vvorset},{1,[{1,1}]}},
{{gold,riak_dt_pncounter},{1,[{1,2}]}},
{{profile,riak_dt_multi},{1,[{1,1}]}},
{{stone,riak_dt_pncounter},{1,[{1,2}]}},
{{weapons,riak_dt_vvorset},{1,[{1,1}]}}]},
[{{friends,riak_dt_vvorset},
{[{actor1,1}],[{dave,{1,[{1,1}]}}]}},
{{gold,riak_dt_pncounter},{[{actor1,100}],[]}},
{{profile,riak_dt_multi},
{{[{actor1,1}],
[{{charisma,riak_dt_pncounter},{1,[{1,1}]}},
{{magic,riak_dt_pncounter},{1,[{1,1}]}},
{{strength,riak_dt_pncounter},{1,[{1,1}]}}]},
[{{charisma,riak_dt_pncounter},{[{actor1,1000}],[]}},
{{magic,riak_dt_pncounter},{[{actor1,999}],[]}},
{{strength,riak_dt_pncounter},{[{actor1,90}],[]}}]}},
{{stone,riak_dt_pncounter},{[{actor1,50}],[]}},
{{weapons,riak_dt_vvorset},
{[{actor1,1}],[{"Halberd",{1,[{1,1}]}}]}}]}
(riak@127.0.0.1)13> riak_dt_multi:value(M4). [{{weapons,riak_dt_vvorset},["Halberd"]},
{{stone,riak_dt_pncounter},50},
{{profile,riak_dt_multi},
[{{strength,riak_dt_pncounter},90},
{{magic,riak_dt_pncounter},999},
{{charisma,riak_dt_pncounter},1000}]},
{{gold,riak_dt_pncounter},100},
{{friends,riak_dt_vvorset},[dave]}]
curl localhost:8098/buckets/foo/maps/bar
{}
curl -X POST localhost:8098/buckets/foo/maps/bar -d"{update, [{update, {chums, riak_dt_vvorset}, {add, sheila}}]}."
curl localhost:8098/buckets/foo/maps/bar
{"chums_sets":["sheila"]}
curl -X POST localhost:8098/buckets/foo/maps/bar -d"{update, [{update, {chums, riak_dt_vvorset}, {add, dave}}]}."
curl localhost:8098/buckets/foo/maps/bar
{"chums_sets":["dave","sheila"]}
curl -X POST localhost:8098/buckets/foo/maps/bar -d"{update, [{update, {chums, riak_dt_vvorset}, {add, phil}},
{update, {chums, riak_dt_vvorset}, {remove, dave}}]}."
curl localhost:8098/buckets/foo/maps/bar
{"chums_sets":["phil","sheila"]}
curl -X POST localhost:8098/buckets/foo/maps/bar -d"{update, [{update, {klout, riak_dt_pncounter}, {increment, 10000}}, {update, {submap, riak_dt_multi}, {update, [{update, {
submap_cntr, riak_dt_pncounter}, {increment, 99}}]}}]}."
curl localhost:8098/buckets/foo/maps/bar | jsonpp
{
"chums_sets": [
"phil",
"sheila"
],
"klout_counters": 10000,
"submap_maps": {
"submap_cntr_counters": 99
}
}
13:20:23:riak(master *) $
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment