apoc.do.case

此过程已弃用。请改用 Cypher 的 条件查询

详细信息

语法

apoc.do.case(conditionals [, elseQuery, params ]) :: (value)

描述

对于给定 LIST<ANY> 中的每一对条件查询,此过程将运行第一个谓词评估为 true 的查询。如果所有条件都不为 true,则改为运行 ELSE 查询。

输入参数

名称

类型

描述

conditionals

LIST<ANY>

条件列表,其中每个条件都是一对:第一个元素是谓词,第二个是基于该谓词执行的 Cypher 查询。

elseQuery

STRING

当所有条件均评估为 false 时执行的 Cypher 查询。默认值为:``。

params

MAP

在执行的 Cypher 查询中使用的参数映射。默认值为:{}

返回参数

名称

类型

描述

MAP

从执行的 Cypher 查询返回的结果。

使用示例

以下内容将创建一个 name 属性为 B 的节点,因为这是第一个评估为 true 的条件

apoc.do.case
CALL apoc.do.case([
  false,
  'CREATE (a:Node { name:"A" }) RETURN a AS node',
  true,
  'CREATE (b:Node { name:"B" }) RETURN b AS node'
  ],
  'CREATE (c:Node { name:"C" }) RETURN c AS node',{})
YIELD value
RETURN value.node AS node;
Cypher 的条件查询
WHEN false THEN CREATE (a:Node { name:"A" }) RETURN a AS node
WHEN true THEN CREATE (b:Node { name:"B" }) RETURN b AS node
ELSE CREATE (c:Node { name:"C" }) RETURN c AS node
结果
节点

(:Node {name: "B"})

以下内容将根据 elseQuery 创建一个 name 属性为 C 的节点,因为所有条件均评估为 false

apoc.do.case
CALL apoc.do.case([
  false,
  'CREATE (a:Node { name:"A" ) RETURN a AS node',
  false,
  'CREATE (b:Node { name:"B" }) RETURN b AS node'
  ],
  'CREATE (c:Node { name:"C" }) RETURN c AS node',{})
YIELD value
RETURN value.node AS node;
Cypher 的条件查询
WHEN false THEN CREATE (a:Node { name:"A" }) RETURN a AS node
WHEN false THEN CREATE (b:Node { name:"B" }) RETURN b AS node
ELSE CREATE (c:Node { name:"C" }) RETURN c AS node
结果
节点

(:Node {name: "C"})