【发布时间】:2015-10-16 19:42:37
【问题描述】:
我正在查询存储建筑地板的 Neo4j 数据库。查询示例如下:
MATCH (s:STOREYVERTEX) <-- (room0: LIVING)
MATCH (s) <-- (room1: DINING)
MATCH (s) <-- (room2: KITCHEN)
MATCH (room0) - [edge0: DOOR] -> (room2)
MATCH (room2) - [edge1: DOOR] -> (room1)
RETURN s
现在这将返回所有具有对应于约束的子图的图。我想以某种方式限制结果图具有的节点数,因此对于给定的示例,我只想获取恰好具有 3 个节点的图,所有类型均为 ROOM。
有没有办法在 Cypher 中做到这一点?
编辑: 这样的事情不起作用:
MATCH (s:STOREYVERTEX) <-- (rooms:ROOM)
WITH s, count(distinct(rooms)) as numberOfRooms
WHERE numberOfRooms = 3
MATCH (s) <-- (room1: DINING)
MATCH (s) <-- (room2: KITCHEN)
MATCH (room0) - [edge0: DOOR] -> (room2)
MATCH (room2) - [edge1: DOOR] -> (room1)
RETURN s
【问题讨论】:
-
请尝试在您的查询中使用语义上有意义的关系类型。