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

相关推荐
麦麦大数据2 天前
M003_中药可视化系统开发实践:知识图谱与AI智能问答的完美结合
人工智能·flask·llm·vue3·知识图谱·neo4j·ner
014-code5 天前
Spring Boot 集成 Neo4j 图数据库实战教程
java·数据库·neo4j
小鸡吃米…7 天前
TensorFlow——TFLearn 及其安装
python·tensorflow·neo4j
七夜zippoe7 天前
与vLLM对比 Ascend Transformer Boost吞吐延迟显存实测数据解读
neo4j·cann
小鸡吃米…8 天前
TensorFlow - 词嵌入
人工智能·python·tensorflow·neo4j
小鸡吃米…9 天前
TensorFlow - TensorBoard 可视化
python·tensorflow·neo4j
melck11 天前
使用 Docker 安装和管理 Neo4j 图数据库
数据库·docker·neo4j
羊羊小栈12 天前
基于知识图谱(Neo4j)和大语言模型(LLM)的图检索增强(GraphRAG)的乳制品生产管理智能问答系统
人工智能·语言模型·毕业设计·软件构建·知识图谱·neo4j·大作业
Coder_Boy_13 天前
TensorFlow小白科普
人工智能·深度学习·tensorflow·neo4j
凯子坚持 c15 天前
CANN 生态中的模型压缩利器:深入 `quant-tool` 项目实现高效 INT8 部署
neo4j