Hi danfein,
I'm assuming there's a many-to-many relationship between Facts and Topics?
We can extend your data model with a Vote node. Each Fact/Topic pair can have a shared Vote.
(t:Topic)-[:HAS_VOTE]->(v:Vote)<-[:HAS_VOTE]-(f:Fact)
(u:User)-[:VOTED...
If you're only looking at nodes and relationships with the structure of
(User)->[IS_MEMBER_OF]->(Role)->[HAS]->(AccessRight)
you can try the following query
MATCH path=(u:User)->[:IS_MEMBER_OF]->(:Role)->[:HAS]->(ar:AccessRight)
WITH u, ar, collect(p...
I can answer your first question, with apoc.refactor.cloneSubgraph: apoc.refactor.cloneSubgraph - APOC Documentation
e.g.
MATCH (s) where s.version_id = 'version-1'
WITH collect (s) as nodes
call apoc.refactor.cloneSubgraph(nodes)
YIELD output as o
S...
If you want to specify multiple conditions, you can use AND:
WHERE closing._text IS NOT NULL
AND specials._text IS NOT NULL
Neo4j Graph Database Platform
WHERE - Neo4j Cypher Manual
`WHERE` adds constraints to the p...
Can you elaborate why OPTIONAL MATCH doesn't achieve the required effect?
This a good read on the different ways we can write conditional queries.:
Neo4j Graph Database Platform
Conditional Cypher Execution - Knowledge B...