LIKE, 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 비어 있지 않은 목록을 반환하는 경우). 그러나 내가 선호하는 엔터티가 없으면 전체 쿼리는 비어있게됩니다.
내가 여기에없는 것에 대한 제안 사항이 있으십니까?