Neo4j 图数据库高级应用系列 / 服务器扩展指南 APOC (8.4) - 集合相关操作

本文介绍了Neo4j图数据库中集合操作的高级应用,特别是利用APOC库进行集合处理。内容涵盖集合的概述及APOC提供的各种函数和过程,帮助用户更好地理解和运用Cypher查询语言中的集合操作。

1、概述

在Cypher查询语言中,集合的使用非常普遍。集合的元素可以是简单类型的值、节点、关系、路径,甚至混合类型。下面的例子是产生集合的一些常用方法:

// 返回一个包含从1到10 的整数集合
RETURN range(1,10) AS collection;
// 返回节点的集合
MATCH (n:Node)
RETURN collect(n) AS nodeColl
// 提取路径中的节点和关系集合
MATCH path = (from:Node) -[:REL]-> (to:Node)
RETURN nodes(path) AS nodeColl, relationships(path) AS relColl

2、函数和过程一览

APOC中集合相关过程和函数提供操作集合的丰富功能。列举如下:

类型

名称

说明

函数

apoc.coll.avg([0.5,1,2.3])

计算集合中的所有值的平均值。

函数

apoc.coll.combinations(
  coll, minSelect,  
  maxSelect
)

从集合coll中,选择最少minSelect个元素、最多maxSelect个元素,生成它们的全组合子集返回。例如:
RETURN apoc.coll.combinations([1,2,3], 2,3)
会返回:
[[1, 2], [1, 3], [2, 3], [1, 2, 3]]
 

函数

apoc.coll.contains(coll, value)

如果集合coll包含值value则返回true

函数

apoc.coll.containsAll(coll, values)

使用HashSet优化的子集包含判断函数:如果指定集合coll中包含所有values则返回true,反之false

函数

apoc.coll.containsAllSorted(
  coll, value
)

在元素已排序的列表/集合coll中判断子集value是否存在的函数:使用了Collections.binarySearch。如果包含,返回true,反之false

函数

apoc.coll.containsDuplicates(coll)

如果集合包含重复元素,则返回true

函数

apoc.coll.containsSorted(coll, value)

在元素已排序的列表/集合coll中判断元素value是否存在的函数:使用了Collections.binarySearch。如果包含,返回true,反之false

### 3. 安装与配置 APOC 插件 如果用户在尝试将 APOC 插件复制到 Neo4j 的插件目录时遇到问题,可能是因为默认的 `plugins` 目录并不存在。这种情况通常发生在通过某些方式(如手动安装或使用 Homebrew)部署 Neo4j 后未自动创建该目录的情况下。 要正确安装 APOC 插件至 Neo4j Community 5.23.0 并确保其可用性,首先应确认 Neo4j 的安装路径。例如,若使用 Homebrew 安装,则 Neo4j 的主目录通常位于 `/usr/local/Cellar/neo4j/5.23.0/libexec/`;若为手动解压安装包,则路径可能是类似 `/Users/<用户名>/Downloads/neo4j-community-5.23.0/` 的位置。进入该目录后,检查是否存在名为 `plugins` 的子目录[^1]。 如果该目录不存在,则需要手动创建它: ```bash mkdir /path/to/neo4j-community-5.23.0/plugins ``` 接下来,从 [GitHub 发布页面](https://github.com/neo4j-contrib/neo4j-apoc-procedures/releases) 下载适用于 Neo4j 5.23.0 的 APOC 插件 JAR 文件(例如 `apoc-5.23.0-all.jar`)[^1],并将此文件复制到新创建的 `plugins` 目录中: ```bash cp apoc-5.23.0-all.jar /path/to/neo4j-community-5.23.0/plugins/ ``` 为了启用 APOC 插件,还需编辑 Neo4j 的配置文件 `neo4j.conf`,添加以下两行以允许加载和运行 APOC 程序: ```properties dbms.security.procedures.unrestricted=apoc.* dbms.security.procedures.whitelist=apoc.* ``` 保存更改后的配置文件,并重启 Neo4j 服务使设置生效: ```bash neo4j restart ``` 最后,在浏览器中访问 Neo4j 浏览器界面并通过执行如下 Cypher 查询来验证 APOC 是否已成功安装: ```cypher RETURN apoc.version(); ``` 如果查询返回了版本号(如 "5.23.0"),则表明 APOC 已经被正确加载并准备就绪[^1]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值