【问题标题】:Is there a way to create a dynamic edge collection?有没有办法创建动态边缘集合?
【发布时间】:2021-02-21 08:58:00
【问题描述】:

我有一个这样格式的集合:

[
    {
        'name': 'test', 
        'features': ['features/id', 'features/id2'...]
    }
]

我想创建一个动态边缘集合,用于连接具有相同特征的文档。
例如,如果我有这个集合:

[
    {
        'name': 'test', 
        'features': ['features/id', 'features/id2']
    },
    {
        'name': 'test2', 
        'features': ['features/id2']
    },
    {
        'name': 'test3', 
        'features': ['features/id']
    },
]

边缘集合会自动创建这些连接:test test2;测试 测试3

【问题讨论】:

  • 我不太了解所需的数据模型test <-> test2; test <-> test3。此语法的标准解释是为每个名称(test、test2、test3)和未命名边集合中的测试顶点之间的边创建一个顶点集合。这与您对动态边缘集合的请求不符。您是在问系统是否可以自动创建边来连接匹配的特征?如果是这样,那么答案是否定的,但您可以运行一次性查询来创建边。但是,根据您以后查询数据的方式,这甚至可能没有必要。

标签: arangodb


【解决方案1】:

您不能使用 AQL 创建集合。你可以做的是

  • 使用单个边集合并存储属性,例如边上的名称,以便稍后在查询中进行过滤
  • 运行查询以确定不同的边缘集合名称,通过 arangosh、HTTP API 或驱动程序为每个名称创建一个边缘集合,并为每个名称运行查询以在各自的边缘集合中创建边缘

另见https://www.arangodb.com/docs/stable/graphs.html#multiple-edge-collections-vs-filters-on-edge-document-attributes

我认为这不是您所要求的(请参阅comment)。

【讨论】:

    猜你喜欢
    • 2020-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-12
    相关资源
    最近更新 更多