私は現在、リレーショナルデータベースをNeo4Jデータベースにアップグレードするプロセスを実行しています。これまで、リレーショナルデータベース(MySQL)で設計していたすべてのものを上回ることができました。つまり、私の報告をする時間が来るまでです。Neo4J - 複数のノードの結果が単一行になるPythonを使用して
私はデータベースを照会するためにPythonを使用していますが、関連するすべての情報を返すことができますが、私が望むやり方ではありません。
コード:
AList = session.run("match (dept:Department)<-[]-(d1:Domain)<-[]-(d2:Domain)<-[]-(a:TestAnswer)-[]->(q:SurveyQuestion) return dept.ABBR as Department, d1.DomainName as Forest, d2.DomainName as Domain, q.QuestionDesc as Question, a.Result as Answer ORDER BY Department")
これは質問のそれぞれのための答えを持っている部門の略語、並べ替え、ノードの素晴らしいリストを返します。電流出力の
例:
部門|フォレスト|ドメイン|質問|回答|
Dname |フォレストロケーション|ドメイン名| Q1 | 90 |
Dname |フォレストロケーション|ドメイン名| Q2 | 1 |
など
私は次のようなレイアウトを持っているために、これを再作成したいと思いますが、私は、私はいくつかのフォームを使用できるかどうかのpython 3に長いプロセスを経るか、する必要がある場合は、完全にはわかりません最も単純な結果を得るためにNeo4j内の組合の数:
部|フォレスト|ドメイン| Q1 | Q2
Dname | ForestName |ドメイン名| 90 | 1
私が答えを見つけることができる場所で誰かが正しい方向に向けることができれば、それも役に立ちます。
が ジム私のコメントで述べたように
私の知る限りのNeo4jは、動的な列を提供することはできません知っているが、あなたが質問を知っていれば、あなたがしたいようあなたがこれを行うことができるはずです。しかし、あなたのタイトルは、あなたが必要とするのは、これをすべて1行にまとめることだということを示しています。私は各部門/森林/ドメインごとに推測しています。質問ごとに別々の列が本当に必要ですか、あるいは他の手段で1つの行に質疑応答を集約すれば十分ですか? – InverseFalcon
@InverseFalconそれを独自のイテレータ/リストにすることができれば、printコマンドを使用してCSVに出力し、レポートで作成された元のテーブルを模倣することができます。これは容認できる解決策になるでしょう - 私はこの結論にどのように到達することができますか? –