【问题标题】:PHP Neo4j NOT relationship query is not workingPHP Neo4j NOT 关系查询不起作用
【发布时间】:2016-06-15 17:29:26
【问题描述】:

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

我尝试的查询:

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

查询应该返回 - 我的朋友不拥有的所有博客。我的身份证是3。 所以其他用户拥有的所有博客都应该被退回。

【问题讨论】:

    标签: php neo4j cypher


    【解决方案1】:

    您在所有博客和用户的所有朋友之间建立了一个交叉产品。

    但只检查每一对的条件。

    你可能想要这个:

    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
    

    【讨论】:

    • 第一个查询本身解决了我的问题。非常感谢。
    猜你喜欢
    • 2013-09-18
    • 2014-05-14
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    • 2010-10-04
    • 1970-01-01
    • 2016-12-20
    • 1970-01-01
    相关资源
    最近更新 更多