neo4jは、関連付けられたノードがない場合、リレーションを持つノードにクエリを実行し、親ノードとnullを返します(オプション)

 

バックグラウンド:

次の図に示すように、グラフデータneo4jの暗号構文を使用して、関係をクエリします。

望ましい結果

name1 name2 name3
name4 name5 ヌル
name6 ヌル ヌル

分析:

このステートメントを使用すると、クエリ結果は次のようになります。

match (d:Category{level:1})-[:IS_PARENT_OF]->(dd:Category{level:2})-[:IS_PARENT_OF]->(ddd:Category{level:3}) 
return d.name,d.code,dd.name,dd.code,ddd.name,ddd.code 
order by d.code,dd.code,dd.code

つまり、カテゴリ関係の第1、第2、第3レベルが存在する場合にのみ、通常のクエリを返すことができます。それらのいずれかが存在しない場合、関係は返されません。

name1 name2 name3

解決

次のステートメントを使用します

//方法一,使用这种办法
optional match (d:Category{level:1})
with d 
optional match (d)-[:IS_PARENT_OF]->(dd:Category{level:2}) 
with d,dd 
optional match (dd)-[:IS_PARENT_OF]->(ddd:Category{level:3}) 
return d.name,d.code,dd.name,dd.code,ddd.name,ddd.code 
order by d.code,dd.code,dd.code

//方法二,这个办法没试,可能行,先列出来--后面试了再更新
optional match (d:Category{level:1})-[:IS_PARENT_OF]->(dd:Category{level:2})-[:IS_PARENT_OF]->(ddd:Category{level:3}) 
return d.name,d.code,dd.name,dd.code,ddd.name,ddd.code 
order by d.code,dd.code,dd.code

 

おすすめ

転載: blog.csdn.net/Mint6/article/details/113101152