有人能告诉我为什么HTTP API中的边缘集合会包含froms和tos的列表吗?
创建新图表的JSON如下:
{
"name" : "myGraph",
"edgeDefinitions" : [
{
"collection" : "edges",
"from" : [
"startVertices"
],
"to" : [
"endVertices"
]
}
]
}
这让我相信系统可以有多个edgeDefinitions,每个edgeDefinition可以有多个from和to条目。我不明白每个定义的多个和来。我有多个边缘定义。
以下是文档:ArangoDB Graph Docs
答案 0 :(得分:3)
ArangoDB中的图可用于存储同类关系或异构关系。如果所有关系都是同构的并且存储在相同的边集合中,则单个边缘定义就足够了。
边定义包含存储关系(属性collection
)的边集合的名称,以及允许在边集合中存储关系的顶点集合的名称(属性{{1}和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