在AWS Neptune Gremlin Python中正确处理顶点删除

时间:2018-10-04 02:05:35

标签: gremlin tinkerpop tinkerpop3 amazon-neptune

使用gremlin_python在AWS Neptune中删除一个顶点会引发错误,即使该顶点实际上已被删除(稍后查询时也找不到)。

我的顶点删除查询是否错误?

delete_vertex_q = "g.V(%s).drop().next()"%(v_id)
delete_vertex_r = eval(delete_vertex_q)

之后,当我再次尝试找到顶点时:
print(g.V('<vertex_id>').next())
我收到StopIteration错误。

我应该如何正确处理 AWS Neptune Gremlin 中的顶点删除和检查?

1 个答案:

答案 0 :(得分:4)

您需要将遍历视为一个流,当该流为空并且尝试获取下一个时,将发生错误。如果您要向Neptune发送脚本,则g.V(id).hasNext()是将为您提供布尔结果的语法。如果您使用gremlin-python并用本机Python编写Gremlin,则需要执行以下操作:

len(g.V(id).toList()) == 0

或者也许:

g.V(id).count().next() == 0

请注意,使用gremlin-python 3.2.10 / 3.3.4(即将发布),您可以直接在Python中进行hasNext(),而上面的选项可以忽略。