我试图重新设定一个顶点。我试过这个,但似乎没有效果
FOR c IN pm_child FILTER c._to == 'pmlibrary/48198494363' UPDATE c WITH {_from: 'pmattic/48212650139'} IN pm_child
当我查看pm_child集合时,_from字段未被触及。修改边缘的正确方法是什么?
答案 0 :(得分:2)
_key
- 属性_from
和_to
are system attributes and thus immutable.
因此,虽然您可以在创建文档时指定它们,但您以后无法对其进行更改。
您需要使用新的_from
和_to
创建新文档,以实现您的目标。
We're thinking about how queries could raise a warning但是还没有找到一个好的解决方案。
我将举例说明如何执行此操作using the social graph - 让 bob 成为 charly 的朋友并断开 bob 和戴安娜。我们需要创建一个新文档MERGE
现有边缘及其新_to
:
FOR rel IN relation FILTER rel._id == "relation/bobAndDiana"
LET newRel = MERGE(rel, {_to: "persons/charlie",
_id:"relation/bobAndCharlie",
fieldToWhipe: null,
_key: "bobAndCharlie"})
INSERT newRel IN relation RETURN newRel
并删除另一个查询中的原始边缘(您可能想为此编写一个事务):
FOR rel IN relation FILTER rel._id == "relation/bobAndDiana" REMOVE rel IN relation
使用ArangoDB 3.0版本可以直接更新_from
和_to
。