Gremlin - 更新多条边的值

Gremlin - Update values of multiple edges

我正在使用 AWS Neptune,我必须使用特定值修改一组 EDGE 中的某个 属性。我还需要在单个事务中完成此操作。在 AWS Neptune 中,manual transaction logic using tx.commit() and tx.rollback() is not supported。这意味着我必须在一次遍历中执行此操作。

如果我要修改顶点而不是边的属性,我可以使用类似于以下查询的查询来完成它:

g.V(<id 1>).property('name', 'Marko').V(<id 2>).property('name', 'Stephen');

这是因为在中间遍历中可以通过idselect顶点,即GraphTraversalclass有V(String ... vertexIds)作为成员函数。

但这对于边的情况就不一样了。我无法以这种方式 select 边缘,因为 E(String ... edgeIds) 不是 GraphTraversal class.

的成员函数

有人可以建议我解决这个问题的正确方法吗?

谢谢。

Amazon Neptune 引擎 1.0.1.0.200463.0 添加了 Support for Gremlin Sessions 以允许在单个事务中执行多个 Gremlin 遍历。

但是,您也可以像这样使用单个查询来完成此操作:

g.E('id1', 'id2', 'id3').coalesce(
    has(id, 'id1').property('name','marko'),
    has(id, 'id2').property('name','stephan'),
    has(id, 'id3').property('name','vadas'))

您可以使用 V().outE().hasId(<list of IDs>)

获得与中间遍历 E() 相同的结果