2016-10-25 7 views
1

私は入門チュートリアルに示されているアプローチに従ってページを構築しようとしています。ページには、部門のためであると私は${current.title}、または${current.description}を使用することができますStructrが親切に自動的にページに12345structrのインバウンドリレーションシップを参照する "正しい"方法は何ですか

そして、IDと部門ノードを検索するために使用する部門/ 12345、/のようなURLを持っていますしかし、私は着信/発信関係として存在するエンティティに関する情報をどのように取得するのか分かりません。たとえば、スキーマのリモート属性セクションに「parentDepartment」という名前の親部門があるとします。

ページにparentDepartmentの名前を表示するにはどうすればよいですか?私は$ {current.parentDepartment.name}を試しましたが、それは正しいとは思われません。また、子供が複数いる可能性のあるchildDepartmentsに同じ種類の情報をどのように、どこに含めるかを知りたいと思います。

答えて

2

${current.parentDepartment.name}を使用するには、parentDepartmentは対象としませコレクションにする必要があります。

あなたのデータモデルは、タイプ(:Department)-[:PARENT]->(:Department)という単純な自己関係で構築されたツリーのようです。関係が(:Department)-*-[:PARENT]-1->(:Department)となるように、基数を正しく設定することが重要です。

このように、親部門属性parentDepartmentは単数形オブジェクトであり、childDepartments属性(名前を変更したものとします)はコレクションです。

コレクションの属性を表示するには、${extract(childDepartments, 'name')}を使用してください。コンマ区切りリストを取得するには、${join(extract(childDepartments, 'name'), ', ')}を使用してください。

+0

もう一度おねがいします!私はスキーマエディタのカーディナリティインターフェースについて知らなかったので、それは大きな助けになります。私はparentDepartmentがうまく働いている。 私はchildDepartmentsについてもあなたのアドバイスを利用できると思いますが、オブジェクトを取得する方法を見つけるためにドキュメントを調べる必要があります。そのため、作成する必要があるリンクにIDを含めることができます。私はそれを解決できない場合は書きます。 もう一度、Structrは印象づける方法を見つけます。 – Daniel

1

incomingfindの組み合わせを使用してください。部門ノードがタイプDepartmentでありましょう:

${ each(incoming(page), 
     each(find('Department', 'id', data.sourceId), 
       print(data.name + '\r\n') 
     ) 
    ) 
} 
関連する問題