Не могу слить с нулевыми значениями; «Невозможно объединить узел, используя нулевое значение свойства» в neo4j
У меня есть столбец в CSV, который выглядит так:
Я использую этот код, чтобы проверить, как работает разделение дат:
LOAD CSV WITH HEADERS FROM
'file:///..some_csv.csv' AS line
WITH
SPLIT(line.date_of_birth, '/') AS date_of_birth
return date_of_birth;
Этот блок кода работает нормально и дает мне то, что я ожидал, это набор из трех значений для каждой даты, или, возможно,null
если не было даты (например,
[4, 5, 1971]
[0, 0, 2003]
[0, 0, 2005]
. . .
null
null
. . .
У меня вопрос, что это за проблема с созданными нулями, и почему я не могу сделать MERGE, когда есть нули?
LOAD CSV WITH HEADERS FROM
'file:///..some_csv.csv' AS line
WITH
SPLIT(line.date_of_birth, '/') AS date_of_birth, line
MERGE (p:Person {
date_of_birth: date_of_birth
});
Этот блок выше дает мне ошибку:
Cannot merge node using null property value for date_of_birth
Я искал вокруг и только нашелеще один ТАК вопрос об этой ошибке, на которую нет ответа. Другие поиски не помогли.
У меня сложилось впечатление, что если нет значения, то Neo4j просто не создает элемент.
Я подумал, что, возможно, узел не может быть сгенерирован, так как, в конце концов, как можно сгенерировать узел, если нет значения для его генерации? Итак, так как я знаю, что нет пропущенных идентификаторов, может быть, я мог бы MERGE с идентификатором и датой, поэтому Neo4j всегда видит значение.
Но этот код не лучше (то же сообщение об ошибке):
LOAD CSV WITH HEADERS FROM
'file:///..some_csv.csv' AS line
WITH
SPLIT(line.date_of_birth, '/') AS date_of_birth, line
MERGE (p:Person {
ID: line.ID
,date_of_birth: date_of_birth
});
Моя следующая идея заключается в том, что, возможно, эта ошибка связана с тем, что я пытаюсь разделить нулевое значение на слешах? Может быть, вся проблема связана сSPLIT
.
Но, увы, та же ошибка при упрощении до этого:
LOAD CSV WITH HEADERS FROM
'file:///..some_csv.csv' AS line
WITH line
MERGE (p:Person {
subject_person_id: line.subject_person_id
,date_of_birth: line.date_of_birth
});
Так что я не совсем понимаю причину ошибки. Спасибо, что посмотрели на это.
РЕДАКТИРОВАТЬ
И @ stdob--, и @cybersam ответили одинаково превосходно, если вы пришли сюда через Google, рассмотрите их, как если бы оба были приняты