apoc.refactor.normalizeAsBoolean

详细信息

语法

apoc.refactor.normalizeAsBoolean(entity, propertyKey, trueValues, falseValues)

描述

将给定属性重构为 BOOLEAN(布尔值)类型。

输入参数

名称

类型

描述

实体 (entity)

ANY

其属性将被规范化为布尔值的节点或关系。

属性键 (propertyKey)

STRING

需要规范化的属性键名称。

trueValues

LIST<ANY>

代表真值的可能取值。

falseValues

LIST<ANY>

代表假值的可能取值。

使用示例

本节中的示例基于以下示例图

CREATE (:Person {prop: 'Y', name:'A'}),
       (:Person {prop: 'Yes', name:'B'}),
       (:Person {prop: 'NO', name:'C'}),
       (:Person {prop: 'X', name:'D'}),
       (:Person {prop: true, name:'E'}),
       (:Person {prop: false, name:'F'});

我们希望将一些属性转换为 BOOLEAN 类型,将 YYes 转换为 true,将 NO 转换为 false。其他不匹配这些可能性的属性将被设置为 null。这同样适用于现有的 BOOLEAN 值。

以下示例为所有具有 prop 属性的节点规范化了所有适用的 BOOLEAN 值:
MATCH (n)
CALL apoc.refactor.normalizeAsBoolean(n,'prop',['Y','Yes'],['NO'])
WITH n
ORDER BY n.id
RETURN n.name AS name, n.prop AS prop;
结果
名称 (name) prop

"A"

true

"B"

true

"C"

false

"D"

null

"E"

null

"F"

null

如果你想保留现有的 BOOLEAN 值,请将其包含在 trueValuesfalseValues 参数中。

MATCH (n)
CALL apoc.refactor.normalizeAsBoolean(n,'prop',['Y','Yes', true],['NO', false])
WITH n
ORDER BY n.id
RETURN n.name AS name, n.prop AS prop;
结果
名称 (name) prop

"A"

true

"B"

true

"C"

false

"D"

null

"E"

true

"F"

false