边缘集合与图形

时间:2015-02-10 18:06:58

标签: graph arangodb edge polyglot-persistance nosql

我不能在ArangoDB中获得一件事:

边缘集合与图形之间的区别是什么?在哪种情况下我应该选择哪种?

2 个答案:

答案 0 :(得分:6)

ArangoDB中的图形构建在文档和边缘之上。

边缘集合在_from_to上具有自动索引,允许有效检索任何连接的文档。由于数据仍存储在常规(文档和边缘)集合中,因此您也可以在非图形查询中使用这些集合。

图形在数据之上添加一些功能(即查询方法,遍历)。您可以在ArangoDB中拥有多个。想想一个"图表"是一种对部分或全部数据进行分组的方法,并使它们可以在查询中访问。

答案 1 :(得分:2)

这是一个优势:

{
  "_id": "edges/328701573688",
  "_from": "nodes/150194180348",
  "_to": "nodes/328668871224",
  "_rev": "3680146597",
  "_key": "328701573688",
  "type": "includes"
}

这是一份文件:

{
  "_id": "nodes/328668871224",
  "_rev": "3610088613",
  "_key": "328668871224",
  "name": "Gold-edged Gem",
  "type": "species"
}

正如您所看到的,没有根本区别。它们都是文件。边缘集合仅在您使用Arango的图形数据库功能时才有用。

据我所知,将集合的类型设置为" edge"告诉Arango它应该确保存储在那里的所有文档都具有_to和_from属性,这样文档就可以作为两个其他文档之间的连接器。

一旦你有一个文档集合,其文档通过边集合中的一堆边文档连接...现在你有了一个图表。