假设我正在创建一个集合来存储一个家谱(只有父关系是重要的),我有一个名为people的顶点集合和一个名为edges的边集合。人员集合中的文档如下所示:
people
edges
{"name" : "xyz", "age": 12, "uniqueid": 10011, "parent_uniqueid": 9808}
使用uniqueid和parent_uniqueid属性按AQL填充edges集合的最佳方法是什么?
uniqueid
parent_uniqueid
iyfjxgzm1#
下面的查询假设对于people中的每个节点p,
p._id = p.uniqueid
p.parent_uniqueid = (parent of p)._id
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,看看其中是否有适用于您的案例的选项。
INSERT
1条答案
按热度按时间iyfjxgzm1#
下面的查询假设对于
people
中的每个节点p,p._id = p.uniqueid
,p.parent_uniqueid = (parent of p)._id
(如果p有父节点)。请查看www.example.com上
INSERT
子句的选项https://www.arangodb.com/docs/stable/aql/operations-insert.html#setting-query-options,看看其中是否有适用于您的案例的选项。