繁体   English   中英

ArangoDB插入边缘不存在

[英]ArangoDB insert edge doesn't exists

我想在docment集合C1和C3之间创建独特的优势。
唯一约束是idkid
我使用flow aql来创建它,但是我在同一个idkid中获得了多个边缘。
我怎么能实现它? 对不起我可怜的英语:)

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM