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