【问题标题】:Proper handling of vertex deletion in AWS Neptune Gremlin Python在 AWS Neptune Gremlin Python 中正确处理顶点删除
【发布时间】:2018-10-04 02:05:35
【问题描述】:

使用 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 中正确处理顶点的删除和检查?

【问题讨论】:

    标签: gremlin tinkerpop tinkerpop3 amazon-neptune


    【解决方案1】:

    您需要将遍历视为一个流,当该流为空并且您尝试获取下一个流时,将发生错误。如果您要向 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(),上述 to 选项可以忽略。

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2019-01-03
      • 1970-01-01
      • 2021-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多