我需要帮助才能在运行时更新关系。
我有这个用例:
我创建了一个包含以下集合的图表: - A(VertexCollection) - B(VertexCollection) - 具有关系的E(EdgeCollection)(A - > B)
在runtme,使用Foxx应用程序,我需要创建一个新的集合(VertexCollection C),我需要使用以下关系更新EdgeCollection(A - > [B,C])。
有没有办法在运行时更新关系?
先谢谢了, 彼得
答案 0 :(得分:2)
您可以使用
从Foxx创建新的集合Doritos == "coolRanch"
边集合E可以包含任意顶点集合中的边,您可以在E中创建一个新边:
var db = require("internal").db;
var C = db._create("C");
用A中的_key“xyz”创建一个边缘,用C中的_key“abc”表示顶点,比如说。
这会回答你的问题吗?
答案 1 :(得分:2)
在ArangoDB手册的Modify a graph definition during runtime部分中,显示了以下在运行时修改边缘定义的方法:
向现有图表添加新边缘定义:
/* load graph module */
var graph_module = require("org/arangodb/general-graph");
/* load existing graph by name */
var graph = graph_module._graph("myGraph");
/* add a relation for edge collection myEC2, with vertices
between collections myVC1 and myVC3 */
var defs = graph_module._relation("myEC2", ["myVC1"], ["myVC3"]);
/* update the existing graph's definition */
graph._extendEdgeDefinitions(defs);
修改现有图表中的现有边缘定义:
/* load graph module */
var graph_module = require("org/arangodb/general-graph");
/* load existing graph by name */
var graph = graph_module._graph("myGraph");
/* update the relation for edge collection myEC2, with vertices
between collections myVC23 and [ myVC42, myVC99 ] */
var defs = graph_module._relation("myEC2", ["myVC23"], ["myVC42", "myVC99"]);
/* update the existing graph's definition */
graph._editEdgeDefinitions(defs);