0

クエリからノードを除外する方法を試しています。私のグラフは、ユーザー、スキル、スキル スコアリング、質問、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

どうしたの?助言がありますか?

ありがとう

4

1 に答える 1