gpt4 book ai didi

arangodb - 安全删除 ArangoDB 中的顶点(使用 _ids)?

转载 作者:行者123 更新时间:2023-12-01 13:47:11 24 4
gpt4 key购买 nike

我正在使用 AQL 在 ArangoDB 中为顶点和边创建一些删除查询,我假设会有一种“安全”的方式来删除顶点,同时也会删除关联的边。但我在文档或其他任何地方都找不到任何内容。以下是进行安全删除的最佳方法吗?

FOR e IN GRAPH_EDGES('EdgeClass',docId,{direction:'any',maxDepth:1, includeData:false})
REMOVE e._key FROM EdgeClass

结合

REMOVE docKey IN DocumentClass

还有,有没有办法使用 _id 删除顶点(或边),或者是否有必要使用 _key?我无法让前者工作。

最佳答案

删除顶点目前不通过 AQL 处理。 The graph management interface offers vertex deletion functionality .

programming language specific driver通常提供 wrapper for the REST interfaces to these methods .

如果您想设计一个 AQL 查询来为您执行此操作,您必须知道一个顶点是否仅在一个图中使用,以及此删除可能涉及的边集合的数量。您可能想要使用 more modern graph traversals .让我们尝试 remove eve from the knows graph :

LET keys = (
FOR v, e IN 1..1 ANY 'persons/eve' GRAPH 'knows_graph' RETURN e._key)
LET r = (FOR key IN keys REMOVE key IN knows) REMOVE 'eve' IN persons

所以,我们让 the traversal give us the _key of all edges of Eve .然后,我们从 knows 边集合中删除所有这些边。之后,我们删除 Eve 本人。

但是,您可以很容易地看出,您必须针对您的情况设计这样一个查询。

编辑:可以像这样更优雅地做到这一点:

LET keys = (FOR v, e IN 1..1 ANY 'persons/eve' GRAPH 'knows_graph'
REMOVE e._key IN knows)
REMOVE 'eve' IN persons

关于arangodb - 安全删除 ArangoDB 中的顶点(使用 _ids)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35074545/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com