Neo4j密码匹配全部

xytpbqjk  于 2022-10-01  发布在  其他
关注(0)|答案(1)|浏览(177)

有以下架构:

Person-[:HAS]->(:Skill)<-[:REQUIRES]-(:Job)

Job需要一定数量的Skills。如何正确使用密码MATCH``Person,其中ALL是某些Job所需的Skills

iovurdzv

iovurdzv1#

试一试,我们在这里收集不同集合中的工作技能和人员技能,然后检查人员技能集合中是否存在该工作的所有技能:

MATCH (j:Job)-[:REQUIRES]->(s:Skill)
WITH j, collect(DISTINCT s) AS skillsRequiredForTheJob
MATCH (p:Person)-[:HAS]->(s:Skill)
WITH j, p, skillsRequiredForTheJob, collect(DISTINCT s) AS personSkills
WHERE ALL(skill IN skillsRequiredForTheJob WHERE skill IN personSkills)
RETURN p

相关问题