回到另一个arango问题。
是否有一种简单的方法可以删除文档及其所有边缘?这个解决方案是递归的吗?
再说一遍,我有类似下面的内容。
然后我有两个边缘集合HAS_CIRCLE和HAS_SQUARE,它们与指示的各种\
相对应。
Circle A
/ \
Square 1 Circle B
/ \ \
Circle C Square 2 Square 3
/
Square 4
如果我想删除Circle B.那么我还想删除Circle C,Square 2,Square 3和Square 4.以及所有边缘。
所以基本上我最终会这样做。
Circle A
/
Square 1
现在我的方法是获取Circle C的边缘和相关文档的所有键。然后我用javascript递归地做这个。我正在使用arangojs模块并在我拥有所需内容后使用removeByKeys
。
不确定我是否缺少一些魔法。
答案 0 :(得分:1)
它的工作方式是您必须首先找出要删除的文档的所有ID,并将它与它们所在的集合保持一致。
收集完所有ID后,您需要为每个集合发出一个REMOVE
语句,其中包含ID列表。
您可以在非常相似的问题Safe removal of vertexes in ArangoDB (using _ids)?中找到示例AQL查询如何实现此目的。