ArangoDB中的边缘定义

时间:2017-01-03 08:50:38

标签: graph arangodb

我已将csv文件导入arangodb,它们是virtualmachine和server。现在,我想创建图表来显示virtualmachine和server的关系。

我阅读了手册并尝试定义Edge以关联两个集合。但是我不清楚如何定义边缘。 (即我需要将服务器的名称与virtualmachine的虚拟主机相关联)

Edge Manual

arangosh> myGraph.v1 = db.vertex.insert({name:“vertex 1”});

arangosh> myGraph.v2 = db.vertex.insert({name:“vertex 2”});

arangosh> myGraph.e1 = db.relation.insert(myGraph.v1,myGraph.v2, ........> {label:“knows”});

在这个例子中,如何定义myGraph?

JavaScript exception: ReferenceError: myGraph is not defined
!myGraph.v1 = db.vertex.insert({ name : "vertex 1" });
!^
stacktrace: ReferenceError: myGraph is not defined
    at <shell command>:1:1

另外,我应该逐个定义集合的属性? myGraph.v1 = db.server.insert({name:“server”}); myGraph.v2 = db.virtualmachine.insert({name:“virtualhost”});

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

首先回答有关示例的问题: 示例中缺少一行定义myGraph变量。 它是偶然隐藏的,将在下一个文档构建中显示。

缺少的一行是:

arangosh> var myGraph = {};

这会创建一个空的myGraph对象。该对象仅用于保存对顶点文档的引用,它与arangodb图形模块没有直接关系。

该示例还可以为每一行使用自变量:

arangosh> var v1 = db.vertex.insert({name: "vertex 1"});
arangosh> var v2 = db.vertex.insert({name: "vertex 2"});
arangosh> var e = db.relations.insert(v1, v2, {label: "knows"});

这和以上在数据库方面是相同的。

但现在让我指出如何使用图表的更好方向。 我认为最好是查看有关图https://docs.arangodb.com/3.1/Manual/Graphs/index.html的手册章节以获取更多信息。

答案 1 :(得分:0)

arangosh> var myGraph = {};

arangosh> var myGraph.v1 = db.vertex.insert({name: "vertex 1"});
arangosh> var myGraph.v2 = db.vertex.insert({name: "vertex 2"});
arangosh> var myGraph.e = db.relations.insert(
                         myGraph.v1, myGraph.v2, {label: "knows"});