我知道这个问题之前已经被问过几次,但答案并没有解决我的问题。我正在尝试执行此查询:
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})
但我收到错误:
Cannot merge node using null property value for address_name1
.其他人建议使用:
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
但如果节点具有多个属性,则此解决方案有效。就我而言,它只有
address_name1
属性(property)。有没有办法解决这个问题,比如在
MERGE
之前的查询中用一个词替换空值,或其他一些解决方案?
最佳答案
如果没有地址,真的需要创建Address
吗?节点?
您可以使用 WITH
从 CSV 中过滤行/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})
否则,如果你想创建一个代表“未知”地址的节点,你可以使用
coalesce()
替换默认值: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")})
关于csv - Neo4j 使用带有空值的 MERGE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40788440/