Как вернуть все свойства в Neo4j в разные столбцы - PullRequest
0 голосов
/ 21 ноября 2018

Я знаю, мы можем экспортировать базу данных neo4j в файл CSV, нажав кнопку готовности.После того, как мы реализуем этот запрос шифра:

Match (n)
return n 

Но этот запрос дает нам все свойства в виде 1 строки.

Мой вопрос: какой запрос Cypher реализовать, прежде чем экспортировать в файл CSV вдать нам все свойства, как в отдельных столбцах, даже если узлы не имеют одинаковых свойств,

Например:

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

Ответы [ 2 ]

0 голосов
/ 21 ноября 2018

Чтобы действительно получить нужный формат, вам нужно явно указать каждый столбец в вашем 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
0 голосов
/ 21 ноября 2018

Один из способов - использовать apoc, чтобы экспортировать его как CSV.

CALL apoc.export.csv.query("MATCH (n) return n", "/tmp/results.csv", {})

Пример результата выглядит следующим образом, который можно преобразовать в структуру, которая вам нравится, с помощью других инструментов, таких как jq:

enter image description here

...