How to merge two rethinkdb documents using some function -
How to merge two rethinkdb documents using some function -
i want translate merge function next js code in rql:
class="lang-js prettyprint-override">var d1 = { del: { 1: {n: 1, v: 100, vfx:[100, 110]}, 2: {n: 1, v: 100, vfx:[100, 110]} }}; var d2 = { del: { 2: {n: 1, v: 100, vfx:[100, 110]}, 3: {n: 1, v: 100, vfx:[100, 110]} }}; function merge(d1, d2) { for(k in d2.del){ v = d2.del[k]; d1v = d1.del[k]; if(!d1v){ d1.del[k] = v; } else{ d1v.n += v.n; d1v.v += v.v; for(var = 0, _len = v.vfx.length; < _len; i++) d1v.vfx[i] += v.vfx[i]; } } }; // test merge(d1, d2); console.log(d1); // goal r.do(d1, d2, merge) // of course of study doesn't work
my main problem how iterate through keys of document? r.foreach
requires me create save inside. utilize case want utilize merge
function in update:
rqlexpr.update(merge(d1, r.row))
you can map on keys of document keys
, , build object object
. example:
d1.merge( r.object( d2('del').keys().concatmap(function(key) { homecoming r.branch( d1('del').hasfield(key).not(), [key, d2('del').getfield(key)], [key, d1('del').getfield(key) + d2('del').getfield(key)] ) }) ) )
rethinkdb
Comments
Post a Comment