特定のユーザーによって作成されたアイテムのリストを返すサイファーがあります(正常に動作します):
MATCH (author:User)-[:ITEM_LIST*1..10]->item
WHERE author.username='1'
RETURN item
私が今欲しいのは、作成されたアイテムのリストを返すことですが、特定のユーザーがこれらのアイテムのいずれかを気に入ったかどうかも知ることです。以下のサイファーを試しましたが、うまくいきません。
START user=node(1)
MATCH (author:User)-[:ITEM_LIST*1..10]->item<-[like?:LIKES]-user
WHERE author.username='1'
RETURN item, (like IS NOT NULL) as likes
上記のサイファーは、すべてのアイテムを返し、必要に応じて、アイテムと特定のユーザーの間の好きなものが存在する場合に読みます。残念ながら、?
は結果に違いをもたらさず、要件であるかのように見えitem<-[like?:LIKES]-user
ます。
望ましい結果を得るには、何をする必要がありますか?
編集:
WITH item
オプションの各関係を使用してチェックすることで、これを実行できることに気付きました。これにより、パフォーマンスの問題が発生しますか? もしそうなら、より良い方法はありますか?