限制节点数量

Ban*_*ana 7 neo4j cypher

我正在查询存储建筑物底层的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
Run Code Online (Sandbox Code Playgroud)

现在,这将返回所有具有与约束对应的子图的图.我想以某种方式限制结果图所具有的节点数,因此对于给定的示例,我想仅获得具有正好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
Run Code Online (Sandbox Code Playgroud)

Ban*_*ana 0

最终解决我的问题的是:

MATCH (s:STOREYVERTEX) <-- (rooms) 
WITH s, count(distinct(rooms)) as numberOfRooms
WHERE numberOfRooms = 3
MATCH (s) <-- (room1: KITCHEN) 
MATCH (s) <-- (room2: DINING)
RETURN s
Run Code Online (Sandbox Code Playgroud)