ArangoDB图形创建API

时间:2015-04-20 18:25:38

标签: arangodb

有人能告诉我为什么HTTP API中的边缘集合会包含froms和tos的列表吗?

创建新图表的JSON如下:

{ 
  "name" : "myGraph", 
  "edgeDefinitions" : [ 
    { 
      "collection" : "edges", 
      "from" : [ 
        "startVertices" 
      ], 
      "to" : [ 
        "endVertices" 
      ] 
    } 
  ] 
}

这让我相信系统可以有多个edgeDefinitions,每个edgeDefinition可以有多个from和to条目。我不明白每个定义的多个和来。我有多个边缘定义。

以下是文档:ArangoDB Graph Docs

1 个答案:

答案 0 :(得分:3)

ArangoDB中的图可用于存储同类关系或异构关系。如果所有关系都是同构的并且存储在相同的边集合中,则单个边缘定义就足够了。

边定义包含存储关系(属性collection)的边集合的名称,以及允许在边集合中存储关系的顶点集合的名称(属性{{1}和from)。

以下示例定义了具有单个边缘定义的图形,仅允许在顶点集合tousers之间建立连接。关系存储在名为users的边集合中:

knows

可以声明多个边缘定义,用于在具有多个边集合的单个图形中存储不同类型的关系,例如:

  "edgeDefinitions" : [
     {
        "collection" : "knows",
        "from" : [
           "users"
        ],
        "to" : [
           "users"
        ]
     }
  ]

请注意,也可以在此处使用单个边缘定义,并将所有关系存储在单个边集合中(现在名为 "edgeDefinitions" : [ { "collection" : "knows", "from" : [ "users" ], "to" : [ "users" ] }, { "collection" : "buys", "from" : [ "users" ], "to" : [ "products" ] } ] )。请注意,仍有不同的顶点集合(connectionsusers)以及它们如何连接的一些限制:

products