本文介绍了AWS海王星/Gremlin:合并边现有查询并将边查询插入到一个查询中的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下查询要检查是否存在边:
g.V("N001").hasLabel("my-type").out("parent").hasId("N002").hasLabel("my-type").limit(1).hasNext()
我也有事后查询插入边不存在:
g.V("N001").hasLabel("my-type").as("a").V("N002").hasLabel("my-type").as("b").addE("parent").from("a").to("b")
我的问题是如何将这两个查询合并为一个查询?
推荐答案
在单个查询中实现这一点的常用配方是fold..coalesce..unfold
模式。在您的查询中,它将类似于:
g.V("N001").hasLabel("my-type").
out("parent").
hasId("N002").hasLabel("my-type").
fold().
coalesce(unfold(), addE('parent').from('N001').to('N002'))
注意ID值是唯一的,可以存在,也可以不存在,如果您知道要查找的ID,则不需要进行标签检查,除非您不确定正在使用的ID是否属于该类型(标签)。
查询将返回现有顶点或新创建的边。当然,如果愿意,您可以编辑查询以返回现有边。
这篇关于AWS海王星/Gremlin:合并边现有查询并将边查询插入到一个查询中的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!