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

相关推荐
Kookoos2 天前
ABP VNext 与 Neo4j:构建基于图数据库的高效关系查询
数据库·c#·.net·neo4j·abp vnext
西柚小萌新3 天前
【大模型:知识图谱】--5.neo4j数据库管理(cypher语法2)
数据库·知识图谱·neo4j
局外人LZ3 天前
Docker轻松搭建Neo4j+APOC环境
docker·容器·neo4j
QQ676580083 天前
基于 TensorFlow 2 的 WGAN来生成表格数据、数值数据和序列数据。 WGAN生成对抗网络。代码仅供参考
生成对抗网络·tensorflow·neo4j·表格数据·wgan·对抗网络·序列数据
Java知识库3 天前
Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!
spring boot·知识图谱·neo4j
西柚小萌新4 天前
【大模型:知识图谱】--3.py2neo连接图数据库neo4j
数据库·知识图谱·neo4j
weixin_307779134 天前
Neo4j 数据可视化与洞察获取:原理、技术与实践指南
信息可视化·架构·数据分析·neo4j·etl
weixin_307779135 天前
Neo4j 备份与恢复:原理、技术与最佳实践
运维·数据库·neo4j
weixin_307779135 天前
Neo4j 数据建模:原理、技术与实践指南
neo4j
g5zhu58966 天前
neo4j 5.19.0安装、apoc csv导入导出 及相关问题处理
neo4j