在structr中引用入站关系的“正确”方法是什么?

时间:2016-10-25 18:37:36

标签: neo4j structr

我正在尝试按照介绍性教程中显示的方法构建页面。该页面是一个部门,我有一个像/ department / 12345的网址,Structr会自动使用它来查找ID为12345的部门节点。

然后在页面中我可以使用${current.title}${current.description},但我不知道如何获取有关作为传入/传出关系存在的实体的信息。例如,假设我在模式的远程属性部分中有一个名为“parentDepartment”的父部门。

如何在页面上显示parentDepartment的名称?我尝试了$ {current.parentDepartment.name},但这似乎不正确。我还想知道如何以及在哪里为childDepartments包含相同类型的信息,其中可能有多个孩子。

2 个答案:

答案 0 :(得分:2)

要使用${current.parentDepartment.name},parentDepartment必须是一个对象,而不是一个集合。

您的数据模型似乎是一棵树,使用类型(:Department)-[:PARENT]->(:Department)的简单自我关系构建。将基数设置为正确非常重要,因此关系为(:Department)-*-[:PARENT]-1->(:Department)

这样,父部门属性parentDepartment是一个单一对象,childDepartments属性(假设您重命名它)是一个集合。

显示集合的属性,只需使用${extract(childDepartments, 'name')}。要获取以逗号分隔的列表,只需使用${join(extract(childDepartments, 'name'), ', ')}即可。

答案 1 :(得分:1)

使用incomingfind的组合。让部门节点的类型为Department

${ each( incoming(page), 
         each( find('Department', 'id', data.sourceId), 
               print(data.name + '\r\n') 
         ) 
   ) 
 }