![](/img/trans.png)
[英]Why vertex removing request doesn't remove linked edge with AQL in Arangodb?
[英]ArangoDB insert edge doesn't exists
我想在docment集合C1和C3之間創建獨特的優勢。
唯一約束是id和kid 。
我使用flow 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
我的英語也不太好^)! 但我想,我知道你犯了哪些錯誤。 首先,對於您的兩個集合,您可以使用以下代碼:
LET data = [
{"parent":{"ID":"YOU_MUST_WRITE_HERE_ID_C1"},"child":{"KID":"YOU_MUST_WRITE_HERE_KID_C3"}},
{"parent":{"ID":"YOU_MUST_WRITE_HERE_NEXT_ID_C1"},"child":{"KID":"YOU_MUST_WRITE_HERE_NEXT_KID_C3"}}
]
FOR rel in data
LET parentId = FIRST(
FOR c IN C1
FILTER c.GUID == rel.parent.ID
LIMIT 1
RETURN c._id
)
LET childId = FIRST(
FOR c IN C3
FILTER c.GUID == rel.child.KID
LIMIT 1
RETURN c._id
)
FILTER parentId != null AND childId != null
INSERT { _from: childId, _to: parentId } INTO C2
RETURN NEW
我希望它對你有所幫助。
第二 - 為什么在這個片段中使用С2集合?
let exist = first(
for c in C2
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.