2

頂点ノードをコピーして、その関係を 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'
`;
4

1 に答える 1