Não é possível MERGE com valores nulos; 'Não é possível mesclar o nó usando o valor da propriedade nula' no neo4j
Eu tenho uma coluna em um CSV que se parece com isso:
Estou usando esse código para testar como a divisão das datas está funcionando:
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;
Esse bloco de código funciona bem e me dá o que eu esperaria, que é uma coleção de três valores para cada data, ou talvez umnull
se não havia data (por exemplo,
[4, 5, 1971]
[0, 0, 2003]
[0, 0, 2005]
. . .
null
null
. . .
Minha pergunta é: qual é esse problema com os nulos criados e por que não consigo fazer uma MERGE quando há nulos?
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
});
Este bloco acima me dá o erro:
Cannot merge node using null property value for date_of_birth
Eu pesquisei e encontrei apenasoutra pergunta SO sobre esse erro, que não tem resposta. Outras pesquisas não ajudaram.
Fiquei com a impressão de que, se não houver um valor, o Neo4j simplesmente não cria o elemento.
Imaginei que talvez o nó não possa ser gerado, pois, afinal, como um nó pode ser gerado se não houver valor para gerá-lo? Então, como eu sei que não há IDs ausentes, talvez eu possa MERGE com ID e data, para que o Neo4j sempre veja um valor.
Mas esse código não se saiu melhor (mesma mensagem de erro):
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
});
Minha próxima idéia é que talvez esse erro seja porque estou tentando dividir um valor nulo em barras? Talvez toda a questão se deva aoSPLIT
.
Mas, infelizmente, mesmo erro quando simplificado para isso:
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
});
Então, eu realmente não entendo a causa do erro. Obrigado por olhar para isso.
EDITAR
Ambos @ stdob-- e @cybersam responderam com respostas igualmente excelentes. Se você veio aqui pelo Google, considere-os como se ambos fossem aceitos.