Mam kolumny w pliku CSV, który wygląda tak:Nie można MERGE z wartościami null; „Nie można połączyć węzeł stosując zerową wartość właściwości” w neo4j
używam tego kodu, aby przetestować, jak podział terminach pracuje:
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;
blok ten kod działa poprawnie i daje mi to, czego oczekuję, która jest zbiorem trzech wartości na każdy dzień, a może null
jeśli nie było żadnej daty (np
[4, 5, 1971]
[0, 0, 2003]
[0, 0, 2005]
. . .
null
null
. . .
Moje pytanie brzmi, jaki jest problem z tworzonymi zerami i dlaczego nie mogę wykonać MERGE, gdy są wartości null?
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
});
Blok powyżej daje mi błąd:
Cannot merge node using null property value for date_of_birth
Szukałem wokół i tylko znaleźć one other SO question o tym błędzie, który nie ma odpowiedzi. Inne wyszukiwania nie pomogły.
Miałem wrażenie, że jeśli nie ma wartości, to Neo4j po prostu nie tworzy elementu.
Wyobraziłem sobie, że nie można wygenerować węzła, ponieważ w końcu, jak można wygenerować węzeł, jeśli nie ma żadnej wartości do wygenerowania? Tak więc, ponieważ wiem, że nie ma żadnego identyfikatora, może uda mi się MERGE z identyfikatorem i datą, więc Neo4j zawsze widzi wartość.
ale ten kod nie wypadły lepiej (sam komunikat o błędzie):
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
});
Mój następny pomysł, że być może jest to błąd dlatego staram się podzielić wartość NULL w ukośniki? Może cały problem wynika z SPLIT
.
Ale niestety, ten sam błąd, gdy uproszczone do tego:
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
});
Więc ja naprawdę nie rozumiem przyczynę błędu. Dzięki za spojrzenie na to.
EDIT
Zarówno @ stdob-- i @cybersam oba odpowiedział równie doskonałe odpowiedzi, jeśli przyszedł tu przez Google należy rozważyć je tak, jakby obie były akceptowane
Otrzymuję ten błąd, mimo że nie mam żadnych wartości pustych lub pustych w ogóle. – pl80
Wyobraźmy sobie: ten błąd wystąpi również podczas importowania z pliku CSV, a kolumna znajduje się wewnątrz list zwrotnych (np. Ze względu na spacje) ORAZ POSIADA CZYNNIKI ZAGRANICZNE. – pl80