如何避免 Gremlin apache Tinkerpop 中两个顶点之间的重复边?

How to avoid duplicate edge between two vertices in Gremlin apache Tinker pop?

如何避免 Gremlin apache Tinker pop 中两个顶点之间的重复 edge

A ->(has) -> B

具有相同标签 HAS 的边不应重复。

确保唯一性的一种简单方法是为每条边利用一个复合 ID,该复合 ID 由源顶点 ID、边标签和目标顶点 ID 组成。这将确保尝试在具有相同标签的两个顶点之间添加另一条边会引发错误(因为 TinkerPop 中的每个顶点和边都必须具有唯一 ID)。

gremlin> g.addV('vertex').property(id,'v1').as('a').
... addV('vertex').property(id,'v2').as('b').
... addE('HAS').property(id,'v1-HAS-v2').from('a').to('b')
==>e[v1-HAS-v2][v1-HAS->v2]

gremlin> g.addE('HAS').property(id,'v1-HAS-v2').from(V('v1')).to(V('v2'))
Edge with id already exists: v1-HAS-v2
Type ':help' or ':h' for help.
Display stack trace? [yN]N