私はNeo4jの初心者です。私はこのクエリを実行しようとしました:
「MatiGolは新しい映画を見たいので、次の映画のリストを取得したいと思います。MatiGolという名前の人の友達であるか、またはである人が好きだったすべての映画を返すクエリを記述します。マティゴルが見たすべての映画を除く、マティゴルの友人の友人。」
私の質問は:
MATCH (a:person {name:"Moti Gol"})-[:WATCHED]->(b)
WITH collect(b) AS Already_Watched
MATCH (a:person {name:"Moti Gol"})-[:FRIEND*1..2]->(b)-[:LIKED]->(c)
WITH collect(c) AS Friend_Liked
(movie:Friend_Liked) WHERE NOT (movie.name) IN Already_Watched
RETURN movie.name
このクエリは大丈夫ですか?誰かが私にこれのより良い執筆を提供できますか?
クエリにエラーがあります...まず、最初の行にMATCHステートメントがありません。(a:person {name:"Moti Gol"})
2回一致し、a
変数を再宣言しています。
同じクエリを実行するためのよりシンプルで直感的な方法:
// get all the movies liked by friends or friends of friends of "Moti Gol"...
MATCH (a:person {name:"Moti Gol"})-[:FRIEND*1..2]->(b:person)-[:LIKED]->(c:movie)
// excluding all movies WATCHED by Mati Gol
WHERE NOT (a)-[:WATCHED]->(c)
// return the movies
RETURN c.name
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加