关于Neo4j/Cypher匹配语言遇到的问题,多对多关系查询,多条件查询

ZJJ846859163 2021-02-24 01:07:34

业务逻辑基础:
在上图的基础上 红色的节点表示疾病名称 土黄色的点表示症状。
一个红色节点对应1个或者多个土黄色节点 即一个疾病可能有多种症状。
同样
一个土黄色节点对应一个或者多个红色节点 即同一个症状可能被多个疾病所拥有。
节点和节点之间仅存在关系 HAS

业务需求:
查询同时满足多个症状的疾病
如查询:同时存在症状 头痛和发热的疾病节点
match p=(a)-[r]-(b) where b.name in ['头痛','发热'] return a limit 5


如查询:同时存在症状 头痛发热 咳嗽 流鼻涕的疾病节点
match p=(a)-[r]-(b) where b.name in ['头痛','发热','流鼻涕','咳嗽'] return a limit 5


实际运行后发现这样写仅只能匹配 列表中的第一条症状的疾病 即不能同时满足列表中的所有症状。
在此希望求一解决方法。
...全文
509 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

2,208

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧