2016-11-24 4 views
0

Ich weiß, dass diese Frage schon mehrmals gestellt wurde, aber die Antworten haben mein Problem nicht gelöst. Ich versuche, diese Abfrage auszuführen:Neo4j verwenden MERGE mit Nullwerten

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 
'file:///C:/Users/Zona5/Documents/Neo4j/checkIntel/import/personaldata.csv' AS line1 
MERGE (a:Address1 {address_name1:line1.address1}) 

aber ich habe den Fehler: Cannot merge node using null property value for address_name1.

Andere Leute vorgeschlagen mit:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 
'file:///C:/Users/Zona5/Documents/Neo4j/checkIntel/import/personaldata.csv' AS line1 
MERGE (a:Address1) 
ON CREATE SET a.address_name1=line1.address1 
ON MATCH SET a.address_name1=line1.address1 

aber diese Lösung funktioniert, wenn der Knoten mehr als eine Eigenschaft hat. In meinem Fall hat es nur address_name1 Eigentum.

Gibt es eine Möglichkeit, um dieses Problem zu umgehen, wie die NULL-Werte durch ein Wort in der Abfrage vor der MERGE oder eine andere Lösung ersetzen?

Antwort

2

Wenn es keine Adresse gibt, müssen Sie den Knoten Address überhaupt erstellen?

Sie können die Linien aus der CSV-Filter mit WITH/WHERE:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 'file:///C:/Users/Zona5/Documents/Neo4j/checkIntel/import/personaldata.csv' AS line1 
WITH line1 
WHERE NOT line1.address1 IS NULL 
MERGE (a:Address1 {address_name1:line1.address1}) 

Andernfalls, wenn Sie einen Knoten, die die „unbekannten“ Adresse erstellen möchten, können Sie coalesce() verwenden einen Standardwert zu ersetzen:

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM 'file:///C:/Users/Zona5/Documents/Neo4j/checkIntel/import/personaldata.csv' AS line1 
MERGE (a:Address1 {address_name1: coalesce(line1.address1, "Unknown")})