7
現在、console.neo4j.orgのサンプルデータを使用して、階層JSONを出力するクエリを記述しています。Cypherを使用してツリーからネストされた階層JSONを返す
例データは
create (Neo:Crew {name:'Neo'}), (Morpheus:Crew {name: 'Morpheus'}), (Trinity:Crew {name: 'Trinity'}), (Cypher:Crew:Matrix {name: 'Cypher'}), (Smith:Matrix {name: 'Agent Smith'}), (Architect:Matrix {name:'The Architect'}),
(Neo)-[:KNOWS]->(Morpheus), (Neo)-[:LOVES]->(Trinity), (Morpheus)-[:KNOWS]->(Trinity),
(Morpheus)-[:KNOWS]->(Cypher), (Cypher)-[:KNOWS]->(Smith), (Smith)-[:CODED_BY]->(Architect)
を使用して作成された理想的な出力は、私は次のクエリ
MATCH p =(:Crew { name: "Neo" })-[q:KNOWS*0..]-m
RETURN extract(n IN nodes(p)| n)
を使用して、これを取得しています、今
name:"Neo"
children: [
{
name: "Morpheus",
children: [
{name: "Trinity", children: []}
{name: "Cypher", children: [
{name: "Agent Smith", children: []}
]}
]
}
]
}
を以下の通りです。
[(0:Crew {name:"Neo"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"}), (2:Crew {name:"Trinity"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"}), (3:Crew:Matrix {name:"Cypher"})]
[(0:Crew {name:"Neo"}), (1:Crew {name:"Morpheus"}), (3:Crew:Matrix {name:"Cypher"}), (4:Matrix {name:"Agent Smith"})]
これを理解するためのヒントはありますか?ありがとう
[APOCレポ](https://github.com/neo4j-contrib:
...このようになり、結果行を返します/ neo4j-apoc-procedures)は、名前の履歴を返します。 – cybersam
はい。私は、この質問のサンプルがマトリックスからのものであるという事実に言及していました。 – flq
これはAPOCプラグインの中で最も強力な機能です(少なくとも私にとっても).Docker-composeを使用する場合、ボリュームを使用する場合、Neo4jイメージ(ドキュメントを参照)を使用してDockerに取り込むのは非常に簡単です。 .jar>:/ plugins、 "build"、次に "up"を入力します。この@cybersamを共有してくれてありがとう、私の人生と自由時間を変えました! –