我正在使用ne04j社区版1.9.8。我创建了一个以表格格式给出结果的查询。它有5列(c1-c5),每列的数据都需要创建为不同的csv文件。是否有任何方法可以用来将结果解析为csvs?
我已经看到了对neo4j的csv导入,但我需要完全相反的方式。谢谢你的帮助。
[被修改]
这是我的原始查询:
START survey=node(1111111)
MATCH surveyQ-[:lastStep]->surveyQStep-[:surveys]->survey-[:questionpanel]->qstn-[:sections]->s-[:questions]->q-[:answers]->answers
RETURN ID(survey) as surveyID, ID(qstn) as questionpanelID, ID(s) as sectionID, ID(q) as questionID, ID(answers) as answerID
答案 0 :(得分:1)
[EDITED]
这个答案仅适用于支持WHEN和CASE子句的新版neo4j,而不是1.9.8。如果无法升级到2.1.5,则应该可以安装neo4j 2.1.5的单独实例,将数据复制到新实例,并在新实例上使用此答案。
您可以使用Cypher为每列生成逗号分隔的结果,一次一个。然后,您可以将每列的结果复制到单独的文件中。
假设您的原始查询以RETURN a, b, c, d, e;
要获取第四列中所有值的逗号分隔值(即变量d
),可以使用以下内容替换RETURN
子句:
WITH COLLECT(d) AS v
RETURN reduce(s = "", x IN v | s + (CASE WHEN s = "" THEN "" ELSE "," END ) + x);
根据您的原始查询,您可以获得第一列的CSV数据:
START survey=node(1111111)
MATCH surveyQ-[:lastStep]->surveyQStep-[:surveys]->survey-[:questionpanel]->qstn-[:sections]->s-[:questions]->q-[:answers]->answers
WITH COLLECT(ID(survey)) AS surveyID
RETURN reduce(s = "", x IN surveyID | s + (CASE WHEN s = "" THEN "" ELSE "," END ) + x);
答案 1 :(得分:1)
如果你在表格视图中,你也可以将neo4j浏览器中的查询数据下载为CSV,然后点击该表框内右上角的小下载图标。
否则,如果命令行工具更适合您,
查看neo4j-shell-tools的-o
命令的cypher-import
utput选项:https://github.com/jexp/neo4j-shell-tools#cypher-import