1

因为 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 命令的推荐方法是什么?(它看起来如何?)

4

0 回答 0