更新时间:2023-11-10 09:44:46
执行条件变异操作有一个技巧:条件为true时,使用CASE
语句返回长度为1的列表,否则为空列表.然后FORACH
遍历该数组以执行CREATE
或MERGE
There is a trick to do a conditional mutating operation: use a CASE
statement to return a list of length 1 when the condition is true, otherwise an empty list. Afterwards a FORACH
to iterate over that array to do the CREATE
or MERGE
...
WITH a, x, AffintyScore, SearchScore, TotalScore, Total,
CASE AffinityScore WHEN 0 THEN [] ELSE [1] END as array
FOREACH (x in array |
MERGE
x-[:IS_SIMILAR_TO {
SimilarityScore:Total,
AffinityScore:AffinityScore,
SearchScore:SearchScore
}]->a
)
RETURN a, x, AffintyScore, SearchScore, TotalScore
ORDER BY TotalScore DESC