Kann nicht mit Nullwerten MERGE werden; 'Knoten kann mit Null-Eigenschaftswert nicht zusammengeführt werden' in neo4j

8

Ich habe eine Spalte in einem CSV, die so aussieht:

Ich verwende diesen Code, um zu testen, wie die Aufteilung der Daten funktioniert:

%Vor%

Dieser Codeblock funktioniert einwandfrei und gibt mir das, was ich erwarten würde. Dies ist eine Sammlung von drei Werten für jedes Datum oder vielleicht ein null , wenn kein Datum vorhanden war (z. B.

) %Vor%

Meine Frage ist, was ist das für ein Problem mit den Nullen, die erstellt werden, und warum kann ich nicht eine MERGE machen, wenn Nullen vorhanden sind?

%Vor%

Dieser Block oben gibt mir den Fehler:

%Vor%

Ich habe gesucht und nur eine weitere SO-Frage über diesen Fehler gefunden , die keine Antwort hat. Andere Suchen haben nicht geholfen.

Ich hatte den Eindruck, dass, wenn es keinen Wert gibt, Neo4j das Element einfach nicht erzeugt.

Ich dachte, vielleicht kann der Knoten nicht erzeugt werden, denn wie kann schließlich ein Knoten erzeugt werden, wenn es keinen Wert gibt, aus dem er generiert werden kann? Da ich weiß, dass keine IDs fehlen, könnte ich vielleicht mit ID und Datum MERGE, so dass Neo4j immer einen Wert sieht.

Aber dieser Code ging nicht besser (gleiche Fehlermeldung):

%Vor%

Meine nächste Idee ist, dass dieser Fehler vielleicht darin besteht, dass ich versuche, einen Nullwert auf Schrägstriche zu teilen? Vielleicht liegt das ganze Problem an der SPLIT .

Aber ach, derselbe Fehler, wenn er dazu vereinfacht ist:

%Vor%

Also verstehe ich die Ursache des Fehlers nicht wirklich. Danke für das Betrachten.

BEARBEITEN

Sowohl @ stdob-- als auch @cybersam haben beide mit ebenso ausgezeichneten Antworten geantwortet. Wenn Sie über Google hierher gekommen sind, betrachten Sie sie bitte so, als wären beide akzeptiert.

    
Monica Heddneck 06.05.2016, 21:42
quelle

4 Antworten

9

Wie @cybersam sagte Zusammenführung funktioniert nicht gut mit Abfragen, bei denen die Eigenschaften innerhalb des Bereichs in null festgelegt sind. So können Sie bei der Erstellung und beim Abgleich verwenden :

%Vor%     
stdob-- 06.05.2016, 23:35
quelle
7

Einige Cypher-Abfragen, wie MERGE , funktionieren nicht gut mit NULL -Werten.

Die etwas heikle Problemumgehung für die Behandlung dieser Situation mit MERGE besteht darin, die FOREACH -Klausel zur bedingten Ausführung von MERGE zu verwenden. Diese Abfrage funktioniert möglicherweise für Sie:

%Vor%     
cybersam 06.05.2016 23:26
quelle
3

Oder Sie können COALESCE(n.property?, {defaultValue})

verwenden     
Val 08.11.2016 22:08
quelle
1

Eine andere Lösung, die mir sehr am Herzen liegt, besteht darin, der Chiffre zu sagen, dass sie Zeilen überspringen soll, in denen das Interessenfeld wie folgt NULL ist:

%Vor%     
Tshimanga 14.10.2017 01:46
quelle

Tags und Links