我有以下gremlin查询:
gremlin> g.E('96b546e0-bf87-9649-2694-ccc29acec83e').as('e')
.properties('foo').as('foo').select('e').outV().outE()
.has('foo', __.select('foo')).valueMap()
==>{foo=bar2}
==>{foo=bar}
上面的查询旨在从一条边开始,然后从其outV识别具有相同边属性'foo'的所有其他边。问题在于has()期望第二个参数有一个值,而select()返回一个属性
我的问题 :。如何在起始边缘上捕获'foo'的值,然后在has()或where()中使用该值来滤除与属性'foo'共享不同值的边缘?
答案 0 :(得分:1)
要比较一个元素的属性与另一个元素的属性,请使用where()
:
g.E('96b546e0-bf87-9649-2694-ccc29acec83e').as('e').
outV().outE().
where(eq('e')).
by('foo')
要排除原始边缘,您可以这样做:
g.E('96b546e0-bf87-9649-2694-ccc29acec83e').as('e').
outV().outE().
where(neq('e')).
where(eq('e')).
by('foo')