У меня есть neo4j db, который имеет эту форму
(:FBuser)-[:Published]->(:Post)<-[:Tagged_in]-(:Friend)<-[:Tagged_together]->(:Friend)
Сообщение (:Node)
может иметь два или более узлов (:Friend)
, связанных с ним.
Я хочу написать запрос, который возвращает эту схему
(:FBuser)-[:Friend]->(n:Friend)-[:Tagged_in]->(:Post)<-[:Tagged_in]-(m:Friend)<-[:Tagged_together]->(n)
, где для (:Post)
мне нужны все сообщения для этой спецификации c (n:Friend)
. Проблема в том, что не все (:Post)
связаны с другим (m:Friend)
, поэтому только для некоторых узлов у меня есть (n:Friend)<-[:Tagged_together]->(m:Friend)
Я пишу этот код, но, очевидно, возвращает только все узлы (:Post)
для конкретный c узел (:Friend)
и связанный с ним дополнительный (:Friend)
MATCH t=(:fbUser)-[:FRIEND]-(w)-[:TAGGED_IN]-(p)
MATCH s=(:Friend)-[:TAGGED_IN]-(q)
WHERE
w.name=~ '(?i).*edoardo.*' AND
q.timestamp=p.timestamp AND
w.nodeDegree>=0
RETURN t,s
Как решить проблему?