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

相关推荐
喜欢打篮球的普通人3 天前
MLIR快速入门
neo4j·mlir
ELI_He9993 天前
Neo4j 安装 APOC
neo4j
綮地4 天前
Neo4j 基本处理
neo4j
lzp07914 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
爱折腾的小码农4 天前
neo4j数据库桌面管理工具
数据库·neo4j
Wenhao.8 天前
Docker 安装 neo4j
docker·容器·neo4j
RDCJM9 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
机器不学习我也不学习11 天前
TensorFlow环境安装
neo4j
码农老李12 天前
vxWorks7.0 Simpc运行tensorflow lite example
人工智能·tensorflow·neo4j
小鸡吃米…1 个月前
TensorFlow 实现异或(XOR)运算
人工智能·python·tensorflow·neo4j