私はエンティティノード、ユーザーノード、およびLIKES、POSTED_BYなどのいくつかの関係を持つデータベースを持っています。私は、この目的を達成するためのクエリを記述しようとしています:Cypher COLLECT句を使用すると、リストが空になることがあります。
は、私は私のクエリを簡素化しているユーザー
。なお、すべてのエンティティの特定のユーザーが好きなノードまたはPOSTED_BYされたものを探す - リアルに私が持っています上記と同様の他の条件の束。
私はすべてのEntityノードのリストを集約し、その行ごとにビルドするためにCOLLECT句を使用しようとしています。
MATCH (e)<-[:LIKES]-(me:User{id: 'rJVbpcqzf'})
WITH me, COLLECT(e) AS all_entities
MATCH (e)-[:POSTED_BY]->(me)
WITH me, all_entities + COLLECT(e) AS all_entities
UNWIND all_entities AS e
WITH DISTINCT e
RETURN e;
これは、ユーザが気に入った少なくとも一つのエンティティことがある場合のみ、正しいリストを返すているように見える(すなわち、第一は、COLLECT非空のリストを返す場合)。しかし、好きなエンティティがない場合、クエリ全体が空に戻ります。
私がここで紛失していることに関する提案はありますか?