クエリからノードを除外する方法を試しています。私のグラフは、ユーザー、スキル、スキル スコアリング、質問、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
アップデート:
エンドノードはこのように接続されています。
- 青はユーザーノード
- 紫は、ジャーナル処理された承認ノード (で作成) です。
- 緑はスキルスコアリングノードです
実際、関係「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
短所により、このクエリを実行して質問を除外すると、クエリは質問だけでなく、望ましくない質問も返します
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
どうしたの?助言がありますか?
ありがとう