Janusgraph中的合并Gremlin查询

Janusgraph中的合并Gremlin查询,graph,gremlin,coalesce,janusgraph,gremlin-server,Graph,Gremlin,Coalesce,Janusgraph,Gremlin Server,如何编写coalesce gremlin查询以在janusgraph中创建边?我先创建一个节点1,然后创建一个节点2,然后在节点1和节点2之间创建一条边。我希望创建边时,即使之前没有创建节点1/节点2,也应该在创建边时创建边。这里是一个使用两个合并步骤创建顶点(如果顶点不存在)的示例,然后添加边。注意,我在本例中使用了自定义ID。您可能需要对JanusGraph使用不同的模式,但这是您可以使用的通用模式。你也可以用其他方法写这篇文章,但希望这能让你开始 g.V('v1').fold().coal

如何编写coalesce gremlin查询以在janusgraph中创建边?我先创建一个节点1,然后创建一个节点2,然后在节点1和节点2之间创建一条边。我希望创建边时,即使之前没有创建节点1/节点2,也应该在创建边时创建边。

这里是一个使用两个合并步骤创建顶点(如果顶点不存在)的示例,然后添加边。注意,我在本例中使用了自定义ID。您可能需要对JanusGraph使用不同的模式,但这是您可以使用的通用模式。你也可以用其他方法写这篇文章,但希望这能让你开始

g.V('v1').fold().coalesce(unfold(),addV('test').property(id,'v1')).
  V('v2').fold().coalesce(unfold(),addV('test').property(id,'v2')).
  addE('myedge').to(V('v1')) 

假设有一个名为
unique\u property
的属性,它唯一地标识任何节点,并且节点的标签是
node
。假设我们要在节点1和节点2之间添加一条标记为“连接”的边

g.V().has('node','unique_property','node1').fold()
     .coalesce(unfold(), __.addV('node').property('unique_property','node1'))
     .as('from_node') 
     .coalesce(__.V().has('node','unique_property','node2'), __.addV('node').property('unique_property','node2'))
     .addE('connects')
     .from('from_node')
     .iterate()