2017-05-24 107 views
0

我在structr.org的「SCHEMA-Editor」中創建了我的數據庫。我有兩個節點「Project」和「ProjectManager」,它們之間的關係是「MEMBER」。 我做了一個暗號查詢來創建這樣的圖形:在STRUCTR.org中創建兩個現有節點之間的關係

MATCH (a:Project),(b:ProjectManager) 
WHERE a.name = 'X' AND b.name = 'Y' 
CREATE (a)-[r:MEMBER]->(b) 
RETURN r,a,b; 

而且我預計顯示圖形,但我得到這個消息:「MEMBER.id must_not_be_empty」

回答

3

節點和關係創建Cypher支架在Structr中不能立即使用,因爲Cypher繞過Structr層並直接在數據庫級別上運行。爲了使對象知道Structr,還需要執行一些額外的步驟:它需要包含隨機UUID(通用唯一標識符)的id屬性。

請參閱架構編輯器中的「工具」 - >「管理」 - >「關係」 - >「添加UUID」。

附加提示:在Cypher中,您應該使用MERGE而不是CREATE來避免在兩個節點之間創建重複關係(取決於您的使用情況)。

+0

謝謝。我還有一個誤解:例如一個ProjectManager有許多項目,我想用「數據字段」中創建的所有信息來顯示圖形,並且還有節點之間的關係,爲此我寫了這個命令:Match(n)return( N)。我應該編寫一個單獨的密碼代碼來創建項目和經理之間的關係嗎,模式還不夠? –

+0

MATCH(m:Project {title:'Proj'})< - [:MEMBER] - (ProjectManagers)RETURN ProjectManagers.name;我想返回'Proj'中所有成員的ProjectManagers。 –

+1

在Structr中可以非常容易地完成所有這些,不需要使用Cypher來進行簡單的查詢。請看一下repeater元素(https://support.structr.com/article/275),StructrScript(https://support.structr.com/article/119),特別是find()函數(https:/ /support.structr.com/article/53)。 –

相關問題