2016-12-21 12 views
0

Neo4jを使用してクエリを実行しようとしています。 Neo4jでAUTO-COMPLETEがONの間に情報を取得した結果を印刷したいと思います。 たとえば、次のように3つのノードを作成するクエリを考えます。Neo4jのすべてのノードから関係を取得する

create (david:Person {name: 'david'}), (mike:Person {name: 'mike'}), (book:Book {title:'book'}), (david)-[:KNOWS]->(mike), (david)-[:WRITE]->(book), (mike)-[:WRITE]->(book) 

はここで2つの画像です:

    • オートコンプリートオートコンプリート

    • オフ

    図はクエリの後に表示され、開始ノード( 'book'ノード)に基づいてすべての関連ノードの関係を取得したいと考えています。 私はこのクエリを以下のように使用しました。

    match (book:Book)-[r]-(person) return book, r, person 
    

    かどうかはAUTO-COMPLETEがONかOFFで、私は「ダビデはマイクを知っている」が、システムがそう言うなど、すべてのノードの関係を得ることを期待しています。

    私はneo4jのウェブサイトで多くの構文構造を研究しましたが、何とか私にとっては非常に難しいです。だから、私はあなたのために援助を得るためにこの投稿をアップロードします。

  • +0

    のNeo4jのウェブサイトには、[CYPHER文で複製のNeo4jブラウザのオートコンプリート機能]のhttps://neo4j.com/docs/cypher-refcard/current –

    +0

    可能な重複している(http://stackoverflow.com/質問/ 31029276/replicate-neo4j-browser-auto-complete-function-in-a-cypher-statement) – InverseFalcon

    答えて

    0

    InverseFalconのおかげで、これは動作する私のクエリです。

    MATCH p = (book:Book)-[r]-(person:Person) 
    UNWIND nodes(p) as allnodes WITH COLLECT(ID(allnodes)) AS ALLID 
    MATCH (a)-[r2]-(b) 
    WHERE ID(a) IN ALLID AND ID(b) IN ALLID 
    WITH DISTINCT r2 
    RETURN startNode(r2), r2, endNode(r2) 
    
    0

    自分で必要とするすべてのデータを明示的に返却する必要があります。 Neo4jが何千もの関係を持つスーパーノードのすべてのリレーションシップを自動的に返すのは悪いことです。

    MATCH (book:Book)-[r]-(person)-[r2]-() 
    RETURN book, r, person, collect(r2) AS r2 
    
    +0

    あなたの返事をありがとう。残念ながら、これは私が探している答えではありません。 InverseFalconが提供する答えは、私が探しているものですが、私はあなたのサポートに感謝します。 –

    関連する問題