我已将csv文件导入arangodb,它们是virtualmachine和server。现在,我想创建图表来显示virtualmachine和server的关系。
我阅读了手册并尝试定义Edge以关联两个集合。但是我不清楚如何定义边缘。 (即我需要将服务器的名称与virtualmachine的虚拟主机相关联)
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”});
感谢您的帮助。
答案 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"});