0

我想编写一个将创建多个顶点的 gremlin 查询,但只有在它们都是唯一的情况下才会这样做。我知道我可以通过使用评论中提到的合并步骤来使用 get 或 addV 方法。

g.V().has('com.demo.test', '__type', 'Namespace').fold().coalesce(unfold(), addV('com.demo.test').property('__type', 'Namespace'))

只有当它不存在时,它才会有一个顶点。如果我想在单个查询中对多个边和顶点执行相同的过程怎么办?我的目标是,如果其中一个顶点/边不是唯一的,则它们都不会被创建。但是我知道这可能是不可能的,所以欢迎所有答案。

谢谢

4

1 回答 1

0

我找到了一个可能的解决方案。这可行,但可能有更好的方法来做到这一点。

g.V().coalesce(
  V().has(label,'Namespace61'),
  addV('Namespace61')).
coalesce(
  V().has(label,'Namespace76'),
  addV('Namespace76')).
coalesce(
  V().has(label,'Namespace74'),
  addV('Namespace74')
).dedup()
于 2018-08-07T01:07:17.350 回答