给出一个简单的MLM数据集:
g.addV('user').property('id', 1).as('1')
addV('user').property('id', 2).as('2').
addV('user').property('id', 3).as('3').
addV('user').property('id', 4).as('4').
addV('user').property('id', 5).as('5').
addV('user').property('id', 6).as('6').
addV('user').property('id', 7).as('7').
addV('point').property('value', 5).as('p1')
addV('point').property('value', 5).as('p2').
addV('point').property('value', 5).as('p3').
addV('point').property('value', 5).as('p4').
addV('point').property('value', 5).as('p5').
addV('point').property('value', 5).as('p6').
addV('point').property('value', 5).as('p7').
addE('sponsors').from('1').to('2').
addE('sponsors').from('1').to('3').
addE('sponsors').from('1').to('4').
addE('sponsors').from('2').to('5').
addE('sponsors').from('3').to('6').
addE('sponsors').from('4').to('7').
addE('hasPoints').from('1').to('p1').
addE('hasPoints').from('2').to('p2').
addE('hasPoints').from('3').to('p3').
addE('hasPoints').from('4').to('p4').
addE('hasPoints').from('5').to('p5').
addE('hasPoints').from('6').to('p6').
addE('hasPoints').from('7').to('p7').
iterate()
如何生成以下JSON:
{
"1": x,
"2": y,
"3": z,
...
}
其中1/2/3是用户ID,x / y / z是用户积分及其所有赞助用户积分的总和(即,user1的积分将是其下所有用户递归的总和-u2 + u3 + u4 + u5 + u6 + u7,与user2 / 3/4等相同)。
答案 0 :(得分:0)
您可以通过按id
将用户和得分值的总和分组来实现此目的
g.V().hasLabel('user')
group().by(id).
by(repeat(out()).
emit(hasLabel('point')).values('value').sum())