apoc.refactor.normalizeAsBoolean
Procedure APOC Core
apoc.refactor.normalizeAsBoolean(entity, propertyKey, true_values, false_values) normalize/convert a property to be boolean
Signature
apoc.refactor.normalizeAsBoolean(entity :: ANY?, propertyKey :: STRING?, true_values :: LIST? OF ANY?, false_values :: LIST? OF ANY?) :: VOID
Input parameters
| Name | Type | Default |
|---|---|---|
entity |
ANY? |
null |
propertyKey |
STRING? |
null |
true_values |
LIST? OF ANY? |
null |
false_values |
LIST? OF ANY? |
null |
Usage Examples
The examples in this section are based on the following sample graph:
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'});
We want to transform some properties into a boolean, Y, Yes into true and the properties NO into false.
The other properties that don’t match these possibilities will be set as null. This includes BOOLEAN values as well.
The following normalizes all applicable boolean values for all nodes that have the
prop property: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 |
If you want to keep BOOLEAN values as they are, include them in the parameters trueValues and falseValues:
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 |