首页 > 解决方案 > 在 Neo4j 中优先过滤单个属性

问题描述

我的节点帖子具有如下属性:_id,type(int)

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

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

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

我该怎么做?谢谢

标签: javaneo4j

解决方案


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

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

推荐阅读