使用 Cypher 将查询中的节点连接成一行以导出到 Neo4J 中的 csv

Concatenating nodes from a query into a single line for export to csv in Neo4J using Cypher

我有一个代表国际象棋锦标赛的 neo4J 图表。

说我运行这个:

MATCH (c:ChessMatch {m_id: 1"})-[:PLAYED]-(p:Player) RETURN *

这给了我下棋比赛的两位选手的结果。

图形如下所示:

属性是这样的:

|--------------|------------------|
| (ChessMatch) |                  |
| m_id         | 1                |
| date         | 1969-05-02       |
| comments     | epic battle      |
|--------------|------------------|
| (player)     |                  |
| p_id         | 1                |
| name         | Roy Lopez        |
|--------------|------------------|
| (player)     |                  |
| p_id         | 2                |
| name         | Aron Nimzowitsch |
|--------------|------------------|

我想将此数据导出到 csv,如下所示:

| m_id | date       | comments    | p_id_A | name_A    | p_id_B | name_B           |
|------|------------|-------------|--------|-----------|--------|------------------|
| 1    | 1969-05-02 | epic battle | 1      | Roy Lopez | 2      | Aron Nimzowitsch |

谷歌搜索,令人惊讶的是,我没有找到任何可靠的答案。我能想到的最好的方法就是使用 py2neo 并将所有数据作为单独的表拉下来并合并到 Pandas 中,但这似乎没有吸引力。任何关于如何用 cypher 做的想法都会很有启发性。

APOC 有一个程序:

apoc.export.csv.query 

检查 https://neo4j-contrib.github.io/neo4j-apoc-procedures/index32.html#_export_import 了解更多详情。请注意,您必须将以下内容添加到 neo4j.conf :

apoc.export.file.enabled=true

希望对您有所帮助。

此致, 汤姆