csv - Neo4j 使用带有空值的 MERGE

标签 csv neo4j null cypher

我知道这个问题之前已经被问过几次,但答案并没有解决我的问题。我正在尝试执行此查询:

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/

相关文章:

Neo4j 2.1.2 增量备份失败,全量备份成功

sql - 间隔 : How can I make sure there is just one row with a null value in a timstamp column in table?

java - 遍历器关系方向顺序neo4j java

java - neo4j 遍历器限制大小

haskell - 也许合并运算符

java - Apache POI - 读取具有值的单元格时获取空指针

java - 如何使用 Apache CSV Parser 读取 Excel(.xlsx) Multipartfile?当前方法不适用于设置为 EXCEL 的 CSVFormat

mysql - 如何排除 CSV 文件中的重复条目导入 MySQL?

python - Pandas DataFrame 的起始索引为 1

csv - Apache NiFi : Creating new column using a condition