【发布时间】:2021-06-17 06:28:02
【问题描述】:
如何避免Gremlin apache Tinker pop中的两个顶点之间出现重复的edge?
A ->(has) -> B
具有相同标签HAS 的边不应重复。
【问题讨论】:
如何避免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
【讨论】: