问题描述
V().coalesce(
__.V().hasLabel("Person").has(id,"ABC"),__.addV(_a).property(id,"ABC")
).limit(1)
但是,当图形有0个顶点作为起点时,它不起作用。
如何调整此查询,以便在图表为空时成功执行?
解决方法
您可以使用Gremlin食谱中显示的element existence模式进行此操作。在您的示例中为:
g.V().hasLabel("Person").has(id,"ABC").fold().coalesce(
unfold()
addV(_a).property(id,"ABC")
).limit(1)
折叠将确保至少有一个遍历。
,为此通常推荐使用以下配方的配方:
g.V().hasLabel("Person").has(id,"ABC").
fold().
coalesce(
unfold(),addV("Person").property(id,"ABC"))
给出的ID是唯一的,您也可以这样做:
g.V().has(id,"ABC"))