2017-12-16 15 views
1

私はNeo4jの実習をUCSDビデオに沿って続けています。私は演習用に用意されたスクリプトをカットアンドペーストしています。Neo4j:1つのクエリにつき1つのステートメントが必要ですが、取得しました:3

match (d {Name:'D'})-[:TO]-(b) 
with collect(distinct b.Name) as neighbors 
match (n)-[r:TO]->(m) 
where 
not (n.Name in (neighbors+'D')) 
and 
not (m.Name in (neighbors+'D')) 
return n, r, m; 

match (d {Name:'D'})-[:TO]-(b)-[:TO]->(leaf) 
where not((leaf)-->()) 
return (leaf); 

match (d {Name:'D'})-[:TO]-(b)<-[:TO]-(root) 
where not((root)<--()) 

return (root) 

これが返されます:

は、クエリごとに1つの文を期待したが得た私は、グラフが指定されたノードのすぐ近くを含まないため提供されたスクリプトで問題に遭遇しました: 3

最初の8行を実行すると、Neo4jは予想されるノードとエッジを持つグラフを返します。しかし、後続のクエリを追加すると、エラーmsgがポップアップを開始します。

+1

一度に1つのクエリしか実行できません。「MATCH ... RETURN ...」ステートメントを個別にコピーアンドペーストしてください。 –

+0

こんにちは@James_Pineda!私が提供した回答があなたの質問を解決した場合は、チェックマークをクリックして[受諾する](https://meta.stackexchange.com/q/5234/179419)を検討してください。これは、あなたが解決策を見つけ出し、回答者とあなた自身の両方に評判を与えていることを広範なコミュニティに示します。これを行う義務はありません。ありがとう! –

答えて

2

Neo4j Browserは、時間に1つのクエリしか実行できません。あなたは3を実行しようとしている。

クエリ1:

match (d {Name:'D'})-[:TO]-(b) 
with collect(distinct b.Name) as neighbors 
match (n)-[r:TO]->(m) 
where 
not (n.Name in (neighbors+'D')) 
and 
not (m.Name in (neighbors+'D')) 
return n, r, m; 

クエリ2

match (d {Name:'D'})-[:TO]-(b)-[:TO]->(leaf) 
where not((leaf)-->()) 
return (leaf); 

3クエリ:あなたは、コピー、ペーストおよびこれらの3つのクエリを実行する必要があります

match (d {Name:'D'})-[:TO]-(b)<-[:TO]-(root) 
where not((root)<--()) 

return (root) 

別々に。

Neo4jブラウザのGithub Repoには、ブラウザで複数のCypher文を一度にサポートすることについてのopen issueがありますが、これは特にデータを返さない文のためです。

+0

もう1つの可能性は、それらを結合して、中間のRETURNステートメントを取り除き、次のステートメントに必要なものを渡すためにそれぞれの記憶の間にWITHステートメントを追加する単一の照会を作成することです。明らかに、これは、後のクエリーが前のクエリーにマッチしたものに基づいて構築されている場合に最も意味があります。 – wikitect

関連する問題