我知道,我们可以通过单击ready按钮将neo4j数据库导出为CSV文件。在我们实现这个cypher查询之后:
Match (n)
return n 但是这个查询给了我们1行的所有属性。
我的问题是:在导出到CSV文件之前实现哪个Cypher查询,以便为我们提供独立列中的所有属性,即使节点不具有相同的属性。
例如:
node(0) has: name, age.
node(1) has: name, age.
node(2) has: name, address.
node(3) has: name, phone No.
node(4) has: name, age.
node(5) has: name, DoB.我需要的结果是:
name age address phone No DoB
Tom 22
Smith 18
Lee 123abc
Perry 01234
Sara 40
Tom 11/11/2000不是作为:
n
Tom, 22
Smith, 18
Lee, 123abc
Perry, 01234
Sara, 40
Tom, 11/11/2000发布于 2018-11-22 03:27:37
要真正获得您想要的格式,您需要显式声明Cypher中的每一列
MATCH (n) RETURN n.name as name, n.age as age, n.address as address, n.'phone No' as 'phone no', n.DoB as DoB一种更简单的替代方法是将属性导出为映射,然后在加载时设置它们。但是,如果没有apoc,再次设置标签也需要显式。
MATCH (n) RETURN PROPERTIES(n) as props, LABELS(n) as labels
-----
LOAD CSV ... as csv
// without apoc
CREATE(n)
SET n=csv.props
// or with apoc
CALL apoc.create.node(csv.labels, csv.props) YIELD node发布于 2018-11-22 01:03:29
一种方法是使用apoc将其导出为CSV。
CALL apoc.export.csv.query("MATCH (n) return n", "/tmp/results.csv", {})
示例结果如下所示,您可以使用其他工具(如jq )将其转换为您喜欢的结构

https://stackoverflow.com/questions/53416974
复制相似问题