Neo4j之MERGE基础

在 Neo4j 中,MERGE 语句用于根据指定的模式进行创建或匹配节点和关系。它可以在节点或关系不存在时创建它们,并在已存在时进行匹配。

创建或匹配节点:

sql 复制代码
MERGE (p:Person {name: 'John'});

这个查询会检查是否已经存在一个具有 "Person" 标签且属性 "name" 为 "John" 的节点。如果不存在,则创建一个新节点。

创建或匹配带有多个标签的节点:

sql 复制代码
MERGE (m:Movie:Action {title: 'The Matrix', released: 1999});

这个查询会检查是否已经存在一个带有 "Movie" 和 "Action" 标签且属性 "title" 为 "The Matrix" 的节点。如果不存在,则创建一个新节点。

创建或匹配关系及相关节点:

sql 复制代码
MERGE (a:Person {name: 'Alice'})
MERGE (b:Person {name: 'Bob'})
MERGE (a)-[:FRIEND]->(b);

这个查询会首先检查是否已经存在两个具有 "Person" 标签的节点,分别为 "Alice" 和 "Bob"。然后它会创建一个 "FRIEND" 关系将这两个节点连接起来。

条件性创建或匹配:

sql 复制代码
MERGE (p:Person {name: 'John'})
ON CREATE SET p.age = 30
ON MATCH SET p.updated = timestamp();

这个查询会检查是否已经存在一个具有 "Person" 标签且属性 "name" 为 "John" 的节点。如果不存在,则创建一个新节点并设置 "age" 属性为 30。如果已存在,则更新 "updated" 属性为当前时间戳。

MERGE 语句非常适用于在插入或更新数据时进行模式匹配,它可以确保数据的一致性,同时避免重复创建相同的节点或关系。

相关推荐
AI大模型顾潇1 天前
[特殊字符] 本地大模型编程实战(29):用大语言模型LLM查询图数据库NEO4J(2)
前端·数据库·人工智能·语言模型·自然语言处理·prompt·neo4j
辛一一1 天前
neo4j图数据库基本概念和向量使用
数据库·neo4j
Ultipa3 天前
回答 | 图形数据库neo4j社区版可以应用小型企业嘛?
数据库·neo4j·图数据库
火云牌神4 天前
在windows系统中安装图数据库NEO4J
数据库·windows·neo4j
joker_sxj6 天前
【已解决】Neo4j Desktop打不开,不断网解决
neo4j
ZHOU_WUYI7 天前
创建简易个人关系图谱(Neo4j )
neo4j
楠奕7 天前
neo4j多跳查询,未只获取到收尾两个节点,待继续
neo4j
楠奕7 天前
neo4j官方示例
neo4j
大G哥8 天前
用 Go 和 TensorFlow 实现图像验证码识别系统
开发语言·后端·golang·tensorflow·neo4j
mashagua11 天前
neo4j初尝试
neo4j