如何在ArangoDB中以编程方式在集合中创建边?

rjee0c15  于 2022-12-09  发布在  Go
关注(0)|答案(1)|浏览(136)

假设我正在创建一个集合来存储一个家谱(只有父关系是重要的),我有一个名为people的顶点集合和一个名为edges的边集合。
人员集合中的文档如下所示:

{"name" : "xyz", "age": 12, "uniqueid": 10011, "parent_uniqueid": 9808}

使用uniqueidparent_uniqueid属性按AQL填充edges集合的最佳方法是什么?

iyfjxgzm

iyfjxgzm1#

下面的查询假设对于people中的每个节点p,

  1. p._id = p.uniqueid
  2. p.parent_uniqueid = (parent of p)._id(如果p有父节点)。
FOR p in people
FILTER HAS(p, 'parent_uniqueid')
LET edges = (
  FOR e in edges
  FILTER e._from == p.parent_uniqueid and e._to == p._id
  RETURN 1
)
FILTER LENGTH(edges) == 0
INSERT {_from: p.parent_uniqueid, _to: p._id} into edges

请查看www.example.com上INSERT子句的选项https://www.arangodb.com/docs/stable/aql/operations-insert.html#setting-query-options,看看其中是否有适用于您的案例的选项。

相关问题