【问题标题】:Neo4j Cypher query about finding like minded peopleNeo4j Cypher 关于寻找志同道合的人的查询
【发布时间】:2014-12-20 01:16:41
【问题描述】:

我知道这可能是一个简单的问题,但我很难找到答案。

我想找到所有具有INTERESTED_INActivities 的“Person”,ID 为 1 的 Person 不是 FRIENDS_WITH person 1

类似

MATCH (p:Person {Id:1})--[r:INTERSTED_IN]-->(a:Activity {name:Skiing})<--(f:Person)
RETURN f.name

可能是错的..

我认为这会发现每个人都有相同的关系,但我想确保他们不是朋友。

试图弄清楚密码,但找不到任何好的例子。

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    差不多了!

    MATCH (p:Person { id: 1 })-[r:INTERESTED_IN]->(a:Activity { name: 'Skiing' })<-[r2:INTERESTED_IN]-(f:Person)
    WHERE NOT (p)-[:FRIENDS_WITH]-(f)
    RETURN f.name
    

    注意这里的id 是一个属性,而不是内部节点ID。如果这就是你要找的东西,你会这样做:

    MATCH (p:Person)-[r:INTERESTED_IN]->(a:Activity { name: 'Skiing' })<-[r2:INTERESTED_IN]-(f:Person) 
    WHERE ID(p) = 1 AND NOT (p)-[:FRIENDS_WITH]-(f)
    RETURN f.name
    

    它是“密码”。 ;-)

    【讨论】:

    • 您知道,您可以建议对问题进行编辑以修复拼写错误和使用的标签。请参阅我的编辑。当你下次这样做时,提供一个很好的编辑描述,说明你为什么这样做。我的有点懒。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多