Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用图遍历删除文档/边的最佳实践(AQL和Python)_Python_Nosql_Arangodb_Aql_Pyarango - Fatal编程技术网

使用图遍历删除文档/边的最佳实践(AQL和Python)

使用图遍历删除文档/边的最佳实践(AQL和Python),python,nosql,arangodb,aql,pyarango,Python,Nosql,Arangodb,Aql,Pyarango,作为AQL,直接删除边和顶点。我想知道如何删除通过图遍历获得的一组节点/边 我当前用于获取边和节点的代码非常简单,并且可以正常工作: 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

作为AQL,直接删除边和顶点。我想知道如何删除通过图遍历获得的一组节点/边

我当前用于获取边和节点的代码非常简单,并且可以正常工作:

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)
在中,有两个不同的命令用于删除多条边和一个节点:

这个命令有效,但我得到了几个边和几个节点。我尝试将命令修改为(这两个命令都在前两个命令之后执行):

但这是行不通的,交换它们也是一样的。他们两个都是独立执行的。在同一语句中,我得到以下错误:

查询:AQL:未找到文档(执行时)

我能够理解为什么会出现这个错误,但是正确的解决方法是什么? 看起来,仅仅滥用REMOVE命令也是无效的:

REMOVE nodeKeys IN TestNode 
查询:AQL:无效的文档类型(执行时)

由于这比我在Python代码中使用的常规AQL要复杂一些,我想知道以后在Python代码中如何使用它

现在,我将使用For命令来获取键列表,在迭代中只需使用
collection.delete(key)
。 然而,使用较长的AQL语句似乎比在AQL和Python中使用混合命令更干净

在Python中执行工作AQL命令的推荐方法是什么?(看起来怎么样?)

FOR nkey IN nodeKeys REMOVE nkey IN TestNode    
FOR ekey IN edgeKeys REMOVE ekey IN TestEdge
REMOVE nodeKeys IN TestNode