Date
1 - 4 of 4
addE doesn't create more than 1 edge
Anton Eroshenko <erosh...@...>
I'm trying to link one vertex (let's say Activity) with two others (person), I expect to have two
edges in result, the request below creates only one.
gremlin> g.V().hasLabel('Activity')
==>v[40984624]
gremlin> g.V().hasLabel('person').has('id', within('p1', 'p2'))
==>v[40996896]
==>v[41037952]
gremlin> g.V().hasLabel('Activity').addE('LINK').to(g.V().hasLabel('person').has('id', within('p1', 'p2')))
==>e[oe5mu-oefxs-b0np-oepeo][40984624-RESP->40996896]
==>v[40984624]
gremlin> g.V().hasLabel('person').has('id', within('p1', 'p2'))
==>v[40996896]
==>v[41037952]
gremlin> g.V().hasLabel('Activity').addE('LINK').to(g.V().hasLabel('person').has('id', within('p1', 'p2')))
==>e[oe5mu-oefxs-b0np-oepeo][40984624-RESP->40996896]
Is it a bug or I'm missing something?
HadoopMarc <bi...@...>
Hi Anton,
It is not a bug: the addE() step only adds one edge per traverser. Also, using g.V() twice is an anti-pattern. Try it the other way around, something like (not tested):
g.V().hasLabel('person').has('id', within('p1', 'p2')).as('a').addE('LINK').from('a')
Now the addE() step runs on two traversers.
HTH, Marc
Op dinsdag 15 december 2020 om 12:22:56 UTC+1 schreef Anton Eroshenko:
I'm trying to link one vertex (let's say Activity) with two others (person), I expect to have twoedges in result, the request below creates only one.gremlin> g.V().hasLabel('Activity')
==>v[40984624]
gremlin> g.V().hasLabel('person').has('id', within('p1', 'p2'))
==>v[40996896]
==>v[41037952]
gremlin> g.V().hasLabel('Activity').addE('LINK').to(g.V().hasLabel('person').has('id', within('p1', 'p2')))
==>e[oe5mu-oefxs-b0np-oepeo][40984624-RESP->40996896]Is it a bug or I'm missing something?
Amiya <amiyakr...@...>
Marc is correct about "It is not a bug: the addE() step only adds one edge per traverser".
I think query by Mark will create a self link.
Below query might work (not tested)
g.V().hasLabel('Activity').as('a').
V().has('person', 'id', within('p1', 'p2')).addE('LINK').from('a')
On Tuesday, 15 December 2020 at 20:36:56 UTC+5:30 HadoopMarc wrote:
Hi Anton,It is not a bug: the addE() step only adds one edge per traverser. Also, using g.V() twice is an anti-pattern. Try it the other way around, something like (not tested):g.V().hasLabel('person').has('id', within('p1', 'p2')).as('a').addE('LINK').from('a')Now the addE() step runs on two traversers.HTH, MarcOp dinsdag 15 december 2020 om 12:22:56 UTC+1 schreef Anton Eroshenko:
I'm trying to link one vertex (let's say Activity) with two others (person), I expect to have twoedges in result, the request below creates only one.gremlin> g.V().hasLabel('Activity')
==>v[40984624]
gremlin> g.V().hasLabel('person').has('id', within('p1', 'p2'))
==>v[40996896]
==>v[41037952]
gremlin> g.V().hasLabel('Activity').addE('LINK').to(g.V().hasLabel('person').has('id', within('p1', 'p2')))
==>e[oe5mu-oefxs-b0np-oepeo][40984624-RESP->40996896]Is it a bug or I'm missing something?
Anton Eroshenko <erosh...@...>
Thanks for your explanation. I got the idea, that "many" side of "one-to-many" relationship should go first when adding edges.
toggle quoted message
Show quoted text
On Wednesday, December 16, 2020 at 2:03:31 AM UTC+7 Amiya wrote:
Marc is correct about "It is not a bug: the addE() step only adds one edge per traverser".I think query by Mark will create a self link.Below query might work (not tested)
g.V().hasLabel('Activity').as('a').V().has('person', 'id', within('p1', 'p2')).addE('LINK').from('a')On Tuesday, 15 December 2020 at 20:36:56 UTC+5:30 HadoopMarc wrote:Hi Anton,It is not a bug: the addE() step only adds one edge per traverser. Also, using g.V() twice is an anti-pattern. Try it the other way around, something like (not tested):g.V().hasLabel('person').has('id', within('p1', 'p2')).as('a').addE('LINK').from('a')Now the addE() step runs on two traversers.HTH, MarcOp dinsdag 15 december 2020 om 12:22:56 UTC+1 schreef Anton Eroshenko:
I'm trying to link one vertex (let's say Activity) with two others (person), I expect to have twoedges in result, the request below creates only one.gremlin> g.V().hasLabel('Activity')
==>v[40984624]
gremlin> g.V().hasLabel('person').has('id', within('p1', 'p2'))
==>v[40996896]
==>v[41037952]
gremlin> g.V().hasLabel('Activity').addE('LINK').to(g.V().hasLabel('person').has('id', within('p1', 'p2')))
==>e[oe5mu-oefxs-b0np-oepeo][40984624-RESP->40996896]Is it a bug or I'm missing something?