2017-05-26 3 views
2

最近、私が従うコースのプロジェクトにNeo4jを使用しています。 APOCを使用してデータベースを.csvにエクスポートする方法を理解しました。Neo4j APOCとの関係IDを含む.csvにエクスポートする方法

ただし、エクスポートされた.csvファイルには関係IDが含まれていません。 私は、データベースをエクスポートするには、次の呼び出しを使用します。

CALL apoc.export.csv.all("export.csv",{}) 

私も関係IDのを取得するには、次のサイファーのクエリを使用することができます。

MATCH()-[r]-() RETURN ID(r) 

apoc.export.csv.queryが存在します()私はapoc.export.csv.all呼び出しに含まれている情報を含むクエリは考えられず、関係IDも含まれています。

IDを個別に要求してPythonスクリプトを使用してexport.csvに入れることができますが、関係の順序が別の呼び出し/クエリで同じかどうかはわかりません。

ご協力いただきありがとうございます。

+0

"export.csv"のヘッダーには、 "_start"、 "_ end"、 "_ type" 'が含まれていますか?あなたは実際の関係IDを持っている必要がありますか? –

+0

ちょっとデイブ、速い応答のためにありがとう、はいヘッダーは '_start、_end、_type'を含んでいます。ノードには '_id'が含まれているので、なぜそれが関係のためにそれをしないのだろうと思っていました。はい、これらの3つの属性に属する実際の関係IDを持っています:) –

+2

あなたがインポートするとき、Neo4jがどの内部IDに割り当てるのかを制御できないので、関係IDはあまり役に立ちません新しく作成されたノードと関係ノード_IDがエクスポートされる理由は、関係を介してノードを接続するためにノードを識別するために使用する一意のキーを持つためですが、すべてがインポートされて接続されると、おそらくそれほど有用ではありません。 – InverseFalcon

答えて

1

設定を変更すると表示されませんでした。しかし、あなたが本当に関係IDを使って出力をしたいのであれば、apocリポジトリをクローンしてapoc/export/csv/CsvFormat.javaに少し変更を加えることができます。これは、出力に関係IDを追加するかなり簡単な方法です。

ヘッダーにIDを追加する必要があります。私は

List<String> relHeader = generateHeader(relPropTypes, config.useTypes(), "_start:id", "_end:id", "_type:label", "_id:id"); 

List<String> header = generateHeader(relPropTypes, config.useTypes(), "_start:id", "_end:id", "_type:label", "_id:id"); 

...下の行に , "_id:id"を追加そして、あなたは私が追加 writeRels(SubGraph graph, CSVWriter out, Reporter reporter, Map<String, Class> relPropTypes, int cols, int offset)

でいくつかの行を変更する必要があります...

row[offset+3]=String.valueOf(rel.getId()); 

そして3からのオフセットを変更しました以下の行の4を参照してください。

collectProps(relPropTypes.keySet(), rel, reporter, row, 4 + offset); 

結果は次のようになります...

"_id","_labels","name","_start","_end","_type","_id","a_lot" 
"0",":Node","A",,,,, 
"1",":Node","B",,,,, 
"2",":Node","C",,,,, 
,,,"0","1","REL","0","" 
,,,"0","2","LIKES","1","true" 

私はテストに3.2コミュニティを使用しました。私は、変更が、apoc.export.*コレクションの全体的な機能に及ぶかどうか、さらにどのような影響があるのか​​全く分かりません。

+0

このソリューションをありがとう、それはちょうどうまく動作します:)それはapoc.exportを壊れないことを願っています。 –

関連する問題