1

特定のユーザーによって作成されたアイテムのリストを返すサイファーがあります(正常に動作します):

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オプションの各関係を使用してチェックすることで、これを実行できることに気付きました。これにより、パフォーマンスの問題が発生しますか? もしそうなら、より良い方法はありますか?

4

1 に答える 1

1

構文の使用WITHは RETURN に似ています。クエリ部分を明示的に分離し、次の部分に引き継ぐ識別子を宣言できるようにします。

私は多くの状況でそれを使用していますが、パフォーマンスの問題はありません..

また、ここでグラフのサンプルを作成することもできますので、お手伝いできます..

于 2013-07-08T07:54:35.067 に答える