因为 AQL不支持直接删除边和顶点。我想知道如何删除通过 Graph 遍历获得的一组节点/边。
我当前获取边缘和节点的代码非常简单且有效:
LET edgeKeys = (FOR v, e, p IN 1..1000 INBOUND 'TestNode/Node_3'
GRAPH 'testGraph'
RETURN e._key)
LET nodeKeys = (FOR v, e, p IN 1..1000 INBOUND 'TestNode/Node_3'
GRAPH 'testGraph'
RETURN v._key)
在教程中,有两个不同的命令用于删除多个 Edge和一个 Node:
LET r = (FOR key IN edgeKeys REMOVE key IN knows)
REMOVE 'eve' IN persons
这个命令有效,但我有几个 Edges和几个 Nodes。我试图将命令修改为(它们都在前两个命令之后执行):
FOR nkey IN nodeKeys REMOVE nkey IN TestNode
FOR ekey IN edgeKeys REMOVE ekey IN TestEdge
但这不起作用,交换它们是一样的。他们两个独立执行都很好。在同一个语句中,我收到以下错误:
查询:AQL:找不到文档(执行时)
我能够理解为什么会出现这个错误,但是解决它的正确方法是什么?似乎,仅仅滥用 REMOVE 命令也是无效的:
REMOVE nodeKeys IN TestNode
查询:AQL:无效的文档类型(执行时)
由于这比我在 Python 代码中使用的常规 AQL 稍微复杂一点,我想知道以后如何在 Python 代码中使用它?
现在,我将使用 FOR 命令来获取键列表,并在迭代中使用collection.delete(key)
. 然而,使用更长的 AQL 语句似乎比在 AQL 和 Python 中执行混合命令更干净。
在 Python 中执行有效的 AQL 命令的推荐方法是什么?(它看起来如何?)