Neo4j:如何过滤查询

问题描述

我无法使用此查询

MATCH (pb:PRO{code: $pb,letter:$L})-[customerof:CUSTOMER_OF]->(c:CUSTOMER)-[:HAS_CONTRACT]->(con:CONTRACT)-[:HAS_POSITION]->(pos:POSITION)-[:HAS_PRODUCTS]->(prod:PRODUCT) WHERE
    (
        'ALL' in $filter
        or
        (
            'FirsT' in $filter
            and (prod.famprod in ['AC','DT'] and not prod.contractType in ['95|FUNDS']))
        or
        (
            'SECOND' in $filter
            and not prod.famprod in ['AC'] OR(prod.famprod IN ['AC','DT'] and prod.contractType  in ['95|FUNDS'])
        )
    )
    and
    (
        $customerType='ALL'
        or
        (
            $customerType='SINGLE'
            and
            customerof.flagSingle='1'
        )
        or
        (
            $customerType='NOTSINGLE'
            and
            customerof.flagSingle='0'
        )
    )

当我运行“FirsT”或“SECOND”时出现问题:运行“FirsT”查询,尽管“not”在['95|FUNDS']中也返回prod.contractType;运行 'SECOND' 返回是正确的。

我对 neo4j 不太好(第一次体验),我无法解决问题:我尝试了近 20 种不同的组合,但都不起作用。

看起来它们是镜像的:当我尝试修改“FirsT”时,有时它会更改“SECOND”的返回。

'ALL' 工作正常。

你能帮我获得正确的回报吗?

谢谢

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)