簡體   English   中英

在 Neo4j 中,如何在一個節點與其他節點的集合之間創建關系?

[英]In Neo4j how can I create relationships between one node an a collection of other nodes?

我有一個圖表,其中包含一些帶有:SubSystem標簽的節點。 我想添加一個帶有:Document label 的新節點,並與每個現有的:SubSystem SubSystem 節點創建關系。

當我執行此語句時:

MATCH (s:SubSystem)
CREATE (d:Document {title:'New Document'})
CREATE (d)-[:DEPICTS]->(s);

當 Neo4j 為每個:SubSystem SubSystem 創建一個新的:Document節點時,我感到很驚訝。 我有 12 個子系統,所以我最終得到了 12 個新文檔,每個文檔都與一個子系統相關。 如果我寫的話,我會預料到這種行為:

MATCH (s:SubSystem)
CREATE (:Document {title:'New Document'})-[:DEPICTS]->(s);

但我期望分離CREATE子句會創建 1 個文檔,然后在該文檔和每個子系統之間創建關系。

有人可以解釋為什么這不能像我預期的那樣工作。

編輯:

我找到了解決方案。 這個聲明做了我想要的,但我仍然認為我最初的嘗試應該奏效。

CREATE (d:Document {title:'New Document'})
WITH d MATCH (s:SubSystem) CREATE (d)-[:DEPICTS]->(s);

MATCH子句生成一個或多個結果行(如果未找到結果,則中止查詢)。 隨后的讀/寫子句將每行執行一次。 正如您所做的那樣,重新排列子句的順序是解決該問題的一種方法(如果可能)。

暫無
暫無

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

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