【发布时间】:2019-04-02 10:24:56
【问题描述】:
我想在文档集合 C1 和 C3 之间创建独特的边缘。
唯一的约束是 id 和 kid。
我使用流 aql 来创建它,但我在同一个 id 和 kid 中获得了多个优势。
我怎样才能实现它?
对不起我的英语不好:)
for i in C1
filter i.id != null and i.id != ''
let exist = first(
for c in C2
filter i.id == c.id and i.kid == c.kid
limit 1
return c
)
filter exist == null
let result = first(
for h in C3
filter i.kid == h.kid
limit 1
return h
)
insert{_from:i._id, _to:result._id, id:i.id, kid:i.kid} INTO C2
【问题讨论】:
-
如果 id 和 Kid 的组合是唯一的(正如您在帖子中提到的那样),那么 C1 和 C3 之间的简单连接应该可以满足您的需求。如果你得到重复,这意味着 id 和 Kid 本身不足以是唯一的,你要么需要使用不同的更独特的属性,要么你需要先清理 c1 和 c3。
标签: arangodb