在运行时更新关系

时间:2015-12-30 14:41:55

标签: arangodb foxx

我需要帮助才能在运行时更新关系。

我有这个用例:

我创建了一个包含以下集合的图表: - A(VertexCollection) - B(VertexCollection) - 具有关系的E(EdgeCollection)(A - > B)

在runtme,使用Foxx应用程序,我需要创建一个新的集合(VertexCollection C),我需要使用以下关系更新EdgeCollection(A - > [B,C])。

有没有办法在运行时更新关系?

先谢谢了, 彼得

2 个答案:

答案 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);