我正在尝试执行NOT relation
查询,但条件不适用。我在这里做错了什么?
我试过的查询:
MATCH (blog:Blog), (user:User{id:3})-[:FOLLOWS]->(otherUser:User)
WHERE NOT ((otherUser)-[:OWNS]->(blog))
RETURN blog
查询应该返回 - 我朋友不拥有的所有博客。我的身份是3。 因此,应该返回其他用户拥有的所有博客。
答案 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