gpt4 book ai didi

javascript - Cypher Neo4j 中 MERGE 和 CREATE 的区别

转载 作者:行者123 更新时间:2023-12-05 04:40:45 25 4
gpt4 key购买 nike

我只是将一些内容从 .csv 文件导入到 Neo4j。我一直使用 MERGE 创建节点,但现在,当尝试从 .csv 导入时,一些数据为空,例如列地址。当我执行 MERGE 而不是 CREATE 时,它给出了一个错误,但是当我执行 CREATE 时,它工作正常。我知道 MERGECREATE 之间的唯一区别是如果节点已经存在,MERGE 不会创建一个新节点。

我的查询:

LOAD CSV WITH HEADERS FROM '<path>' as line
CREATE (a: Address
{
address: line.address,
postalCode: toInteger(line.postalCode),
town: line.town,
municipalityNr: toInteger(line.municipalityNr),
municipality: line.municipality,
countryCode: line.countryCode,
country: line.country

})
RETURN a.address

最佳答案

在执行 MERGE 时,Neo4j 需要一个可以合并的值。 MERGE 使用 null 将始终导致错误。

一般来说,这是方法:

仅在与查找唯一节点相关的属性上MERGE。因此,例如,如果您想MERGE 汽车,车牌就是要使用的属性。确保您对 MERGE 所在的属性具有 CONSTRAINT。这将有助于加快导入速度。为避免 MERGE 中出现空值,您可以使用 COALESCE()MERGE 之后,您可以SET 其他可能有空值的属性。

MERGE {c:Car {licensePlate: COALESCE(line.licensePlate,'Unknown') })
SET c.color = line.color,
c.someproperty = line.someproperty

在运行结束时,您会发现一个带有 licensePlate:'Unknown':Car 节点

关于javascript - Cypher Neo4j 中 MERGE 和 CREATE 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70219228/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com