繁体   English   中英

在 Janusgraph 中合并 Gremlin 查询

[英]Coalesce Gremlin Query in Janusgraph

如何编写合并 gremlin 查询以在 janusgraph 中创建边缘? 我创建了一个 node1,然后创建了 node2,然后在 node1 和 node2 之间创建了一条边。 我希望以某种方式创建边缘,即使之前没有创建 node1/node2,也应该在创建边缘时创建它。

这是一个使用两个合并步骤来创建顶点(如果它们不存在)然后添加边的示例。 请注意,我在此示例中使用了自定义 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_property的属性唯一标识任何节点,并且该节点的 label 是node 假设我们要在 node1 和 node2 之间添加一条标记为connects的边。

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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM