有没有办法将neo4j结果下载为csv

有没有办法将neo4j结果下载为csv,neo4j,Neo4j,我使用的是ne04j社区版本1.9.8。我创建了一个以表格格式给出结果的查询。它有5列(c1-c5),每列的数据需要创建为不同的csv文件。是否有任何方法可以使用该命令将结果解析为CSV 我已经看到了对neo4j的csv导入,但我需要的是与此完全相反的方式。谢谢你的帮助 [已编辑] 这是我最初的疑问: START survey=node(1111111) MATCH surveyQ-[:lastStep]->surveyQStep-[:surveys]->survey-[:quest

我使用的是ne04j社区版本1.9.8。我创建了一个以表格格式给出结果的查询。它有5列(c1-c5),每列的数据需要创建为不同的csv文件。是否有任何方法可以使用该命令将结果解析为CSV

我已经看到了对neo4j的csv导入,但我需要的是与此完全相反的方式。谢谢你的帮助

[已编辑]

这是我最初的疑问:

START survey=node(1111111)
MATCH surveyQ-[:lastStep]->surveyQStep-[:surveys]->survey-[:questionpanel]->qstn-[:se‌​ctions]->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
[已编辑]

这个答案只适用于支持WHEN和CASE子句的较新版本的neo4j,而不是1.9.8。如果无法升级到(比如)2.1.5,则应该可以安装一个单独的neo4j 2.1.5实例,将数据复制到新实例,并在新实例上使用此答案

您可以使用Cypher为每个列生成一个逗号分隔的结果,一次一个。然后可以将每列的结果复制到单独的文件中

假设原始查询以
返回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-[:se‌​ctions]->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);

如果您在表格视图中,并点击该表格框架右上角的小下载图标,则还可以将neo4j浏览器中查询的数据作为CSV下载

否则,如果命令行工具更适合您


查看neo4j shell工具的
cypher import
命令的
-o
输出选项:

谢谢,我尝试了命令行输出,但没有成功。我在1.9.8版本中也找不到“下载图标”。你能给我指一下吗?或者加一张小图片,告诉我在哪里可以找到它。我是这里的新手,想把事情弄清楚。再次感谢!谢谢,它抱怨括号不闭合。另外,你能简要描述一下这些变量是什么吗?再说一次,我是一个新手,在这里努力想办法解决问题。再次感谢!请提供您的原始查询,然后也许我可以给您一个直接适用于您的情况的答案。开始调查=节点(1111111)匹配调查q-[:lastStep]->调查QStep-[:surveys]->调查-[:questionpanel]->qstn-[:sections]->q-[:answers]->答案返回ID(调查)作为调查ID,ID(qstn)作为问题面板ID,ID(s)作为sectionID,ID(q)作为questionID,ID(answers)作为answerIDOK,我在我的答案中添加了一个示例,使用您最初的查询。希望这会有所帮助。有关语法的一些信息,还可以参考。但我现在看到,该文档没有提到CASE子句——1.9.8是否可能不支持这一点?如果没有,那么这个具体的答案显然对你不起作用。2.0.4的参考也没有。所以,这些都是最近才开始的。