API для создания графиков ArangoDB

Может ли кто-нибудь сказать мне, почему коллекция краев в HTTP API принимает список от и до?

JSON для создания нового графика выглядит так:

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

Это наводит меня на мысль, что в системе может быть несколько определений ребер и что каждое определение ребер может иметь несколько записей от и до. Я не понимаю множественное от и до по определению. У меня есть несколько определений ребер.

Вот документация: ArangoDB Graph Docs


person Virmundi    schedule 20.04.2015    source источник


Ответы (1)


Граф в ArangoDB может использоваться для хранения как однородных, так и разнородных отношений. Если все отношения однородны и хранятся в одном наборе ребер, достаточно одного определения ребер.

Определение ребра содержит имя коллекции ребер, в которой хранятся отношения (атрибут collection), а также имена коллекций вершин, которым разрешено хранить отношения в коллекции ребер (атрибуты from и to).

В следующем примере определяется граф с одним определением ребра, причем соединения разрешены только между коллекциями вершин users и users. Отношения хранятся в коллекции ребер с именем knows:

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

Можно объявить несколько определений ребер для хранения различных типов отношений в одном графе с несколькими коллекциями ребер, например:

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

Обратите внимание, что здесь также можно было бы использовать одно определение ребра и хранить все отношения в единой коллекции ребер (теперь называемой connections). Обратите внимание, что все еще существуют разные коллекции вершин (users и products) и некоторые ограничения на то, как они могут быть связаны:

  "edgeDefinitions" : [
     {
        "collection" : "connections",
        "from" : [
           "users"
        ],
        "to" : [
           "users",
           "products"
        ]
     }
  ]
person stj    schedule 21.04.2015