Neo4j之unwind基础

UNWIND 语句在 Cypher 查询中用于将列表(数组)中的元素逐个"展开",从而将每个元素视为单独的行进行处理。它通常与 MATCHCREATEMERGE 等语句结合使用,用于对列表中的每个元素执行相应的操作。以下是一些常用的示例和解释:

基本用法

sql 复制代码
UNWIND [1, 2, 3, 4, 5] AS number
RETURN number * 2 AS doubled

这个示例使用 UNWIND 逐个展开给定的列表,然后将每个元素乘以2并返回。

与MATCH结合

sql 复制代码
MATCH (p:Person)-[:FRIEND]->(f:Person)
WITH p, COLLECT(f.name) AS friends
UNWIND friends AS friend_name
RETURN p.name, friend_name

这个示例首先匹配拥有朋友关系的人节点,然后使用 COLLECT 聚合函数将每个人节点的朋友姓名收集到列表中,最后使用 UNWIND 逐个展开朋友列表,并返回每个人节点和他们的朋友姓名。

创建节点和关系

sql 复制代码
UNWIND ['Alice', 'Bob', 'Charlie'] AS name
CREATE (:Person {name: name})

这个示例使用 UNWIND 逐个展开给定的姓名列表,然后逐个创建具有姓名属性的人节点。

与MERGE结合

sql 复制代码
UNWIND ['Alice', 'Bob', 'Charlie'] AS name
MERGE (p:Person {name: name})
ON CREATE SET p.created = timestamp()
RETURN p.name, p.created

这个示例使用 UNWIND 逐个展开给定的姓名列表,然后使用 MERGE 创建具有姓名属性的人节点,如果节点不存在则创建,并在创建时设置一个时间戳属性。

总之,UNWIND 语句用于逐个展开列表中的元素,将每个元素作为单独的行进行处理。它常用于与其他语句结合,实现对每个元素的操作,从而进行数据转换、节点创建、关系建立等操作。

相关推荐
engchina2 天前
Neo4j数据库清理指南:如何安全地删除所有节点和索引
数据库·neo4j
麦麦大数据3 天前
vue+django+neo4j航班智能问答知识图谱可视化系统
django·vue·echarts·neo4j·智能问答·ltp·航班
engchina4 天前
docker 启动 neo4j
docker·容器·neo4j
阿梦Anmory6 天前
[neo4j报错]py2neo.errors.ClientError: [Request.Invalid] Not Found解决方案
neo4j
lisacumt7 天前
【neo4j】 neo4j cypher单一语句 optional 可选操作的技巧
neo4j
qa浪涛10 天前
基于知识图谱的教学案例问答系统
人工智能·django·知识图谱·neo4j
qa浪涛11 天前
基于知识图谱的美食推荐系统
人工智能·python·django·知识图谱·neo4j·美食
qa浪涛12 天前
基于neo4j的医疗问诊系统
python·django·知识图谱·neo4j
qa浪涛12 天前
基于neo4j的新冠治疗和新冠患者轨迹的知识图谱问答系统
人工智能·python·django·知识图谱·neo4j·1024程序员节
qa浪涛12 天前
基于neo4j的体育运动员问答问答系统
人工智能·django·知识图谱·neo4j