我正在尝试找出如何从查询中排除节点。我的图表由用户、技能、技能评分、问题和 endo 组成
- 用户有技能
- 技能有与问题相关的得分((技能)-->(得分)-->(问题))
- endo 是用户和技能评分的关系 ((user)-->(endos)-->(scorings))
我想为用户找到所有问题,但排除用户已经结束关系的那些问题
我以为我可以这样做:
MATCH (u:`User`),
u<-[rel1:`USERS`]-(s:`Skill`),
s-[rel2:`SKILLS`]->(k:`SkillScoring`),
k-[rel3:`ANSWER`]->(q:`Question`),
u<-[rel4:`ENDO`]-(e:`Endo`)
WHERE NOT((e)-->(u)) AND (u.id='1')
RETURN u, e, k, q
更新:
endo节点是这样连接的。
- 蓝色是用户节点
- 紫色是日记背书节点(创建于)
- 绿色是技能评分节点
事实上,关系“ENDORSEMENT”有一个节点(已记录),它连接技能评分节点
更新:
当我执行此查询时,它会返回与用户有关的问题
MATCH (u:User),
u<-[rel1:USERS]-(s:SoftSkill),
s-[rel2:SOFT_SKILLS]->(k:SkillScoring),
k-[rel3:ANSWER]->(q:Question),
u<-[:ENDO]-()<-[:ENDO]->(k)
WHERE u.id='1'
RETURN q, u
通过 cons 当我执行此查询以排除问题时,查询返回我的问题,但也有我不想要的问题
MATCH (u:User),
u<-[rel1:USERS]-(s:SoftSkill),
s-[rel2:SOFT_SKILLS]->(k:SkillScoring),
k-[rel3:ANSWER]->(q:Question)
WHERE u.id='1' AND NOT u<-[:ENDO]-()<-[:ENDO]->(k)
RETURN q, u
怎么了?有什么建议么?
谢谢