如何找到与另一个节点neo4j无关的节点集合

时间:2015-10-07 17:36:23

标签: neo4j cypher graph-databases

我试图获取与节点无关的节点并返回它们。例如,有一个事件节点有图片,我想只向用户显示他没有看到的图片。

  1. 我将事件与图片关系匹配
  2. 将用户及其与他见过的事件的图片的关系匹配
  3. 我遇到问题的方法是如何查询这两个匹配项之间的差异,以便我得到与用户无关的图像。

    MATCH photo =(i) - [r:EVENT_IMAGES] - (e {uuid:' ed3f4785-fc58-4d78-9ae1-ae738814a34a'}) MATCH user =(u {uuid:' 4f731ba1-b15d-4a3f-85bd-446057c84cbc'})
    返回照片,用户

1 个答案:

答案 0 :(得分:2)

您可以使用带有模式的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