静态值存储

该库支持存储和检索静态值,此功能可用于处理 API 凭据或缓存查询结果。

限定名称 类型 版本

apoc.static.get

apoc.static.get(name) - 从配置 (apoc.static.<key>) 或服务器生命周期存储中返回静态存储的值

函数

Apoc Extended

apoc.static.getAll

apoc.static.getAll(prefix) - 从配置 (apoc.static.<prefix>.*) 或服务器生命周期存储中返回所有静态存储的值

函数

Apoc Extended

apoc.static.set

apoc.static.set(name, value) - 将值存储在服务器生命周期的键下,返回先前存储或配置的值

过程

Apoc Extended

本节包含以下子章节

使用 API 凭据

以下示例假设我们在 APOC 配置文件 (conf/apoc.conf) 中有以下条目

apoc.static.twitter.bearer=ABCDEF
apoc.static.twitter.url=https://api.twitter.com/1.1/search/tweets.json?count=100&result_type=recent&lang=en&q=
以下代码返回 apoc.static.twitter.bearer 的值
RETURN apoc.static.get("twitter.bearer") AS value
表 1. 结果

"ABCDEF"

以下代码返回所有带有 twitter 前缀的值
RETURN apoc.static.getAll("twitter") AS value
表 2. 结果

{"bearer":"ABCDEF","url":"https://api.twitter.com/1.1/search/tweets.json?count=100&result_type=recent&lang=en&q="}

以下代码存储一个在服务器生命周期内持续有效的内存值
CALL apoc.static.set("twitter.user", "Michael")
表 3. 结果

null

缓存查询结果

我们还可以使用这些过程和函数来缓存查询结果。

以下代码创建了一个示例图
CREATE (:Person {name: "Mark"})
CREATE (:Person {name: "Michael"})
CREATE (:Person {name: "Karin"})
CREATE (:Person {name: "Jennifer"})
以下代码查找名字不是以字母 m 开头的人,并将他们存储为静态值
MATCH (p:Person)
WHERE not (p.name starts with "M")
WITH collect(p) AS people
CALL apoc.static.set("cached.people", people)
YIELD value
RETURN value
以下代码从 cached.people 静态值中检索这些人
UNWIND apoc.static.get("cached.people") AS person
RETURN person, labels(person) AS label, apoc.meta.cypher.type(person) AS type
表 4. 结果
person 标签 (label) type

{"name":"Karin"}

["Person"]

"NODE"

{"name":"Jennifer"}

["Person"]

"NODE"

© . This site is unofficial and not affiliated with Neo4j, Inc.