【发布时间】:2016-03-07 22:14:46
【问题描述】:
我正在尝试复制一个顶点节点并将其关系保留在 ArangoDB 中。我收到“数据修改后访问”错误 (1579)。当我遍历源节点的边缘并在循环中插入边缘副本时,它不喜欢它。这是有道理的,但我正在努力弄清楚如何在单个事务中做我想要的。
var query = arangojs.aqlQuery`
let tmpNode = (FOR v IN vertices FILTER v._id == ${nodeId} RETURN v)[0]
let nodeCopy = UNSET(tmpNode, '_id', '_key', '_rev')
let nodeCopyId = (INSERT nodeCopy IN 'vertices' RETURN NEW._id)[0]
FOR e IN GRAPH_EDGES('g', ${nodeId}, {'includeData': true, 'maxDepth': 1})
let tmpEdge = UNSET(e, '_id', '_key', '_rev')
let edgeCopy = MERGE(tmpEdge, {'_from': nodeCopyId})
INSERT edgeCopy IN 'edges'
`;
【问题讨论】:
-
答案是否满足您的需求?如果是的话,你能把它标记为接受吗?如果没有,缺少什么?
标签: graph deep-copy arangodb aql