PHP Neo4j NOT关系查询不起作用

时间:2016-06-15 17:29:27

标签: php neo4j cypher

我正在尝试执行NOT relation查询,但条件不适用。我在这里做错了什么?

我试过的查询:

MATCH (blog:Blog), (user:User{id:3})-[:FOLLOWS]->(otherUser:User) 
WHERE NOT ((otherUser)-[:OWNS]->(blog))
RETURN blog

查询应该返回 - 我朋友不拥有的所有博客。我的身份是3。 因此,应该返回其他用户拥有的所有博客。

1 个答案:

答案 0 :(得分:0)

您跨越所有博客和用户的所有朋友之间的交叉产品。

但只检查每一对的情况。

你可能想要这个:

MATCH (user:User{id:3})
MATCH (blog:Blog)
WHERE NOT ((user)-[:FOLLOWS]->()-[:OWNS]->(blog))
RETURN blog

或者

MATCH (user:User{id:3})-[:FOLLOWS]->(otherUser:User) 
WITH collect(otherUser) as friends
MATCH (otherUser)-[:OWNS]->(blog:Blog)
WHERE NOT otherUser IN friends
RETURN blog
相关问题