ArangoDB 图创建 API

ArangoDB Graph Creation API

有人能告诉我为什么 HTTP API 中的边缘集合需要一个起始和终止列表吗?

创建新图表的JSON是这样的:

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

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

这是文档:ArangoDB Graph Docs

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

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

以下示例定义了一个具有单个边定义的图,仅允许在顶点集合 usersusers 之间建立连接。这些关系存储在名为 knows:

的边缘集合中
  "edgeDefinitions" : [
     {
        "collection" : "knows",
        "from" : [
           "users"
        ],
        "to" : [
           "users"
        ]
     }
  ]

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

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

请注意,也可以在此处使用单个边定义并将所有关系存储在单个边集合中(现在命名为 connections)。请注意,仍然存在不同的顶点集合(usersproducts)以及如何连接它们的一些限制:

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