Я занимаюсь разработкой небольших социальных сетевых приложений, и у меня есть следующие узлы и отношения в моей Neo4j графа дб:матч Neo4j узлы и отношения, если существует
- узлы пользователя
- почтовые узлы. Почтовый узел подключается к пользовательскому узлу по отношениям POSTED_BY, и узел Post может быть связан с другим узлом Post посредством отношения SHARING в случае, если сообщение передает другое сообщение.
Я хотел бы получить все сообщения, отправленные конкретным пользователем, и для каждого сообщения также получить исходное сообщение, если оно является долей (и издателем оригинального сообщения).
мне удалось получить необходимую информацию с помощью дополнительного матча, но я новичок в Neo4j и не уверен, что это правильный путь:
match (p:Post)-[r: POSTED_BY]-(publisher:User)
where publisher.userId = {userId}
optional match (p:Post)-[r2: SHARED_POST]-(sharedPost:Post)-[r3: POSTED_BY]-(sharedPostPublisher: User)
return p as post,publisher, sharedPost, sharedPostPublisher
Является ли это правильный путь, чтобы получить эту информацию или должны Я использую другие методы?