在 Janusgraph 中合并 Gremlin 查询
Coalesce Gremlin Query in Janusgraph
如何编写 coalesce 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
的属性,它唯一标识任何节点,节点的标签是node
。假设我们要在节点 1 和节点 2 之间添加一条标记为 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()
如何编写 coalesce 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
的属性,它唯一标识任何节点,节点的标签是node
。假设我们要在节点 1 和节点 2 之间添加一条标记为 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()