Neo4j 基于条件的输出

问题描述

问题: 在 Neo4j 中,我有关系 (p:Person)-[:HAS_DOCUMNET]->(id:Identification)-[:HAS_DESCRIPTION]->(d:Document) 并且每人只需要 1 行数据(personId、documentType 和 idNumber) 我需要根据以下优先级条件开发查询输出 1) 如果 documentType="Passport" 存在,那么应该带有 personId 和受尊重的 idNumber。(第一优先级) 2) 如果 documentType="VoterCard" 存在,那么应该带有 personeId 和受尊重的 idNumber。(如果 Passport 不存在) 3) 如果 documentType="PanCard" 存在,那么应该带有 personId 和受尊重的 idNumber。(如果 VoterId 不存在)

数据呈现如下:

(P1:Person)-[:HAS_Document]->('id1','id2','id3')->[:HAS_DESCRIPTION]->("Passpot","VoterCard",PanCard)`
(P2:Person)-[:HAS_Document]->('id4','id5')->[:HAS_DESCRIPTION]->("VoterCard","PanCard")`
(P3:Person)-[:HAS_Document]->('id6','id7','id8')->[:HAS_DESCRIPTION]->("PanCard","AadharCard","VoterCard")
(P4:Person)-[:HAS_Document]->('id9')->[:HAS_DESCRIPTION]->("PanCard")

输出应该是:

PName    Doc.Type     IDNumber
-------  -----------  ---------
  P1      "Passport"    id1
  P2      "VoterCard"   id4
  P3      "VoterCard"   id8
  P4      "PanCard"     id9

解决方法

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

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

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