【问题标题】:ArangoDB Graph Creation APIArangoDB 图形创建 API
【发布时间】:2023-03-07 14:53:01
【问题描述】:

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

创建新图的 JSON 是这样的:

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

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

这是文档:ArangoDB Graph Docs

【问题讨论】:

    标签: arangodb


    【解决方案1】:

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

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

    以下示例定义了一个具有单个边定义的图,仅允许在顶点集合 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"
            ]
         }
      ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多