簡體   English   中英

如何限制 Neo4j 中的兩個節點之間只有一種關系?

[英]How can I limit to only one relationship between two nodes in Neo4j?

我有以下圖表:

圖表

目前我正在使用這個查詢來添加兩個節點之間的關系:

MATCH (a:Service),(b:Service)
WHERE a.service_id = 'cs2322' and b.service_id = 'ab3232'
CREATE (a)-[r:DEPENDENT_ON]->(b)
RETURN type(r)

但是,我不想在任何兩個節點之間建立一個以上的關系,因為我想可視化我的服務以及它們之間的依賴關系,所以我不能讓一個服務兩次依賴另一個。

如果我嘗試在兩個節點之間創建關系,這兩個節點已經在每個方向上相互建立關系,我有什么辦法可以限制它以強制 neo4j 服務器拋出錯誤?

如果您創建重復關系,則沒有內置方法會引發錯誤。 但這也是執行此類政策的一種非常昂貴的方式。

相反,您可以使用MERGE而不是CREATE來避免創建重復的關系。

例如,這個查詢只會在DEPENDENT_ON關系不存在的情況下創建它; 否則,它只會將現有關系綁定到r

    MATCH (a:Service), (b:Service)
    WHERE a.service_id = 'cs2322' AND b.service_id = 'ab3232'
    MERGE (a)-[r:DEPENDENT_ON]->(b)
    RETURN TYPE(r)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM