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

相关推荐
ELI_He99911 小时前
Neo4j 安装 APOC
neo4j
綮地1 天前
Neo4j 基本处理
neo4j
lzp07911 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
爱折腾的小码农1 天前
neo4j数据库桌面管理工具
数据库·neo4j
Wenhao.5 天前
Docker 安装 neo4j
docker·容器·neo4j
RDCJM6 天前
Neo4j图数据库学习(二)——SpringBoot整合Neo4j
数据库·学习·neo4j
机器不学习我也不学习8 天前
TensorFlow环境安装
neo4j
码农老李9 天前
vxWorks7.0 Simpc运行tensorflow lite example
人工智能·tensorflow·neo4j
小鸡吃米…24 天前
TensorFlow 实现异或(XOR)运算
人工智能·python·tensorflow·neo4j
坐吃山猪24 天前
Neo4j04_数据库事务
数据库·oracle·neo4j