【发布时间】:2017-05-09 08:02:28
【问题描述】:
我有一个 Neo4j 数据库,其中包含许多断开连接的子图(按设计)。每个子图都有一个“组织”节点,因为它是根/起始节点。目的是让每个组织只能查询自己的子图。
我在图表前面有一个 webapp,它提供了用户所属组织的 ID。组织的所有节点都与组织节点有关系。
如果您知道根/起始节点,对特定子图强制执行查询的最佳方法是什么?
我一直在玩这个例子,它有效,但我想知道是否有更好的方法:
MATCH (org:Organization {org_id: 1}) WITH org
MATCH p=(user:User)-[:SITTING_IN]->(room:Room)
WITH p, user, room
WHERE (user)-[:MEMBER_OF]->(org) AND (room)-[:MEMBER_OF]->(org)
RETURN p
当节点的数量随着更复杂的查询而增长时,这很快就会变得很麻烦,你必须记住在 WHERE 子句中检查它们。
【问题讨论】: