apoc.do.when

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

详细信息

语法

apoc.do.when(condition, ifQuery, elseQuery [, params ]) :: (value)

描述

如果条件评估为真,则运行给定的读/写 ifQuery,否则运行 elseQuery

输入参数

名称

类型

描述

condition

布尔值 (BOOLEAN)

确定是否执行 ifQuery 的谓词。

ifQuery

STRING

如果条件为真时要运行的 Cypher 语句。

elseQuery

STRING

如果条件为假时要运行的 Cypher 语句。

params

MAP

给定 Cypher 语句的参数。默认值为:{}

返回参数

名称

类型

描述

MAP

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

使用示例

以下示例将创建一个 name 属性为 A 的节点(根据 ifQuery),因为谓词为真

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

(:Node {name: "A"})

以下示例将创建一个 name 属性为 B 的节点(根据 elseQuery),因为谓词为假

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

(:Node {name: "B"})