在Neo4j中优先过滤单个属性

时间:2018-10-31 07:53:00

标签: java neo4j

我有一个节点发布,其属性如下:_id,type(int)

现在我想按这样的属性类型进行过滤:

首先,我要匹配1,2,3中的每种类型

第二,如果它与任何集合都不匹配,那么我想在数据库中返回其他类型的任何集合,例如4,5,6。

我该怎么办?谢谢

1 个答案:

答案 0 :(得分:0)

您可以计算第一个过滤器的节点数,然后选择要使用的过滤器:

WITH [1, 2, 3] AS firstFilter,
     [4, 5, 6] AS secondFilter
OPTIONAL MATCH (N) WHERE N.type IN firstFilter
WITH CASE WHEN count(N) > 0 
          THEN firstFilter 
          ELSE secondFilter 
     END AS filter    
MATCH (N) WHERE N.type IN filter
RETURN N