【问题标题】:Edge Definition in ArangoDBArangoDB 中的边缘定义
【发布时间】:2017-01-03 08:50:38
【问题描述】:

我已将 csv 文件导入到 arangodb,它们是虚拟机和服务器。现在,我想创建图表来显示虚拟机和服务器的关系。

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

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 : "知道"});

在这个例子中,如何定义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

另外,我应该一个一个定义collection的属性吗? myGraph.v1 = db.server.insert({ name : "server" }); myGraph.v2 = db.virtualmachine.insert({ name : "virtualhost" });

感谢您的帮助。

【问题讨论】:

    标签: graph arangodb


    【解决方案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 以获取更多信息。

    【讨论】:

      【解决方案2】:
      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"});
      

      【讨论】:

      • 添加一些解释,说明此答案如何帮助 OP 解决当前问题
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-08-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多