Neo4j 创建节点而不创建重复节点
Neo4j Create Nodes without Creating Duplicates Nodes
我对此很陌生。很抱歉,如果它看起来很愚蠢。我有一个包含用户日志记录的文件,其中有两列,“用户 ID”和“用户名”,基本上是人们登录和注销的记录。我需要使用“用户名”和“用户 ID”创建节点,该怎么做?我在某处读到使用 OPTIONAL MATCH
但它没有用。这是我写的:
LOAD CSV WITH HEADERS FROM '' as row
OPTIONAL MATCH (n:User) AS nd
WHERE nd is NULL
CREATE (n:User{user_name:row.User_Name}),(r:UserId{user_id:row.User_ID})
它仍然创建了相同数量的节点。如果有人可以帮助我,我将不胜感激。我可以在创建节点后使用 apoc.mergeNode
删除重复项,但如果我能在一个语句中完成所有操作会更方便
您可以只使用 MERGE
,绝不会出现任何重复:
LOAD CSV WITH HEADERS FROM '' as row
MERGE (n:User{user_name:row.User_Name})
MERGE (r:UserId{user_id:row.User_ID})
..
我对此很陌生。很抱歉,如果它看起来很愚蠢。我有一个包含用户日志记录的文件,其中有两列,“用户 ID”和“用户名”,基本上是人们登录和注销的记录。我需要使用“用户名”和“用户 ID”创建节点,该怎么做?我在某处读到使用 OPTIONAL MATCH
但它没有用。这是我写的:
LOAD CSV WITH HEADERS FROM '' as row
OPTIONAL MATCH (n:User) AS nd
WHERE nd is NULL
CREATE (n:User{user_name:row.User_Name}),(r:UserId{user_id:row.User_ID})
它仍然创建了相同数量的节点。如果有人可以帮助我,我将不胜感激。我可以在创建节点后使用 apoc.mergeNode
删除重复项,但如果我能在一个语句中完成所有操作会更方便
您可以只使用 MERGE
,绝不会出现任何重复:
LOAD CSV WITH HEADERS FROM '' as row
MERGE (n:User{user_name:row.User_Name})
MERGE (r:UserId{user_id:row.User_ID})
..