在STRUCTR.org中创建两个现有节点之间的关系

问题描述:

我在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”

节点和关系创建Cypher支架在Structr中不能立即使用,因为Cypher绕过Structr层并直接在数据库级别上运行。为了使对象知道Structr,还需要执行一些额外的步骤:它需要包含随机UUID(通用唯一标识符)的id属性。

请参阅架构编辑器中的“工具” - >“管理” - >“关系” - >“添加UUID”。

附加提示:在Cypher中,您应该使用MERGE而不是CREATE来避免在两个节点之间创建重复关系(取决于您的使用情况)。

+0

谢谢。我还有一个误解:例如一个ProjectManager有许多项目,我想用“数据字段”中创建的所有信息来显示图形,并且还有节点之间的关系,为此我写了这个命令:Match(n)return( N)。我应该编写一个单独的密码代码来创建项目和经理之间的关系吗,模式还不够? –

+0

MATCH(m:Project {title:'Proj'})

+1

在Structr中可以非常容易地完成所有这些,不需要使用Cypher来进行简单的查询。请看一下repeater元素(https://support.structr.com/article/275),StructrScript(https://support.structr.com/article/119),特别是find()函数(https:/ /support.structr.com/article/53)。 –