如何找到与另一个节点 neo4j 没有关系的节点集合
How to find a collection of nodes where there is no relation to another node neo4j
我正在尝试获取与节点无关的节点和 return 它们。比如有一个事件节点有图片,我想只给用户展示他没看过的图片。
- 我正在匹配事件与图片的关系
- 匹配用户及其与他所看到的该事件的图片的关系
我遇到的问题是如何查询这两个匹配项之间的差异,这样我就会得到与用户无关的图像。
匹配照片=(i)-[r:EVENT_IMAGES]-(e{uuid:'ed3f4785-fc58-4d78-9ae1-ae738814a34a'})
匹配用户=(u{uuid:'4f731ba1-b15d-4a3f-85bd-446057c84cbc'})
RETURN 照片,用户
您可以使用带有模式的 WHERE NOT
子句来过滤掉给定模式的匹配项。例如:
MATCH (p:Photo)<-[r:EVENT_IMAGES]-(e:Event {uuid:'ed3f4785-fc58-4d78-9ae1-ae738814a34a'})
MATCH (u:User {uuid:'4f731ba1-b15d-4a3f-85bd-446057c84cbc'})
WITH p, u WHERE NOT (u)-[:VIEWED]->(p)
RETURN p, u
我正在尝试获取与节点无关的节点和 return 它们。比如有一个事件节点有图片,我想只给用户展示他没看过的图片。
- 我正在匹配事件与图片的关系
- 匹配用户及其与他所看到的该事件的图片的关系
我遇到的问题是如何查询这两个匹配项之间的差异,这样我就会得到与用户无关的图像。
匹配照片=(i)-[r:EVENT_IMAGES]-(e{uuid:'ed3f4785-fc58-4d78-9ae1-ae738814a34a'}) 匹配用户=(u{uuid:'4f731ba1-b15d-4a3f-85bd-446057c84cbc'})
RETURN 照片,用户
您可以使用带有模式的 WHERE NOT
子句来过滤掉给定模式的匹配项。例如:
MATCH (p:Photo)<-[r:EVENT_IMAGES]-(e:Event {uuid:'ed3f4785-fc58-4d78-9ae1-ae738814a34a'})
MATCH (u:User {uuid:'4f731ba1-b15d-4a3f-85bd-446057c84cbc'})
WITH p, u WHERE NOT (u)-[:VIEWED]->(p)
RETURN p, u