AWS Neptune、JS、Gremlin:添加带有可选边的顶点

AWS Neptune, JS, Gremlin: add Vertex with optional Edge

有时需要创建带有可选边的顶点。

g.addV('label')
.property(id, 'uniq_id_2').as('u')
.property('edge_is_needed', edgeIsNeeded)
.constant(edgeIsNeeded)
.choose(eq(true), 
  addE('connected').from('u').to(V('uniq_id_1'))
)
.select('u')
.toList()

这个遍历有效,我只是在 JS 中用 edgeIsNeeded 变量注入布尔值。

单遍历有没有更好的办法,比如根据之前的属性edge_is_needed值?

此查询不需要任何路径信息/步骤标签,也没有 choose() 复杂性。这只是一个简单的 has() 过滤器的副作用:

g.addV('label').
    property(id, 'uniq_id_2').
    property('edge_is_needed', edgeIsNeeded).
  sideEffect(has('edge_is_needed', true).
             addE('connected').to(V('uniq_id_1')))