格林姆林:如何查找具有相同属性的其他边

时间:2019-03-14 18:12:28

标签: gremlin

我有一个图,它的两个顶点的ID为'a'和'b'。

gremlin> g.V()

==> v [b]

==> v [a]

从'a'到'b'有两条边。

gremlin> g.E()

==> e [a6b4bead-c161-5a61-d232-abfa2bfad54e] [a-LIKES-> b]

==> e [10b4bead-a0fc-8d2c-d69f-26b3e9e4c5d8] [a-KNOWS-> b]

gremlin> g.E()。valueMap(true)

==> {id = a6b4bead-c161-5a61-d232-abfa2bfad54e,语义=社交,标签=喜欢}

==> {id = 10b4bead-a0fc-8d2c-d69f-26b3e9e4c5d8,语义=社交,标签=知识}

我的问题:给定一条边的ID,我想为属性“语义”查找具有相同值的所有其他边。例如,给定a.LIKES.id,我想执行一个查询,该查询将使用值a.LIKES.semantics返回a.KNOWS。

我从开始:

g.E('a6b4bead-c161-5a61-d232-abfa2bfad54e')  .property('semantics')。as('semantics')...这就是我被困住的地方

谢谢, 乔尔

1 个答案:

答案 0 :(得分:2)

where()by()调制器一起可以完成这项工作:

g.E('a6b4bead-c161-5a61-d232-abfa2bfad54e').as('e').
  outV().inE().
  where(eq('e')).by('semantics'). // return edges with the same semantics property value
  where(neq('e'))                 // ... except the one we started with