gpt4 book ai didi

具有可变关系路径长度的 Neo4j 密码查询

转载 作者:行者123 更新时间:2023-12-04 05:17:06 25 4
gpt4 key购买 nike

我正在将我的复杂用户数据库迁移到 Neo4j,用户可以在其中加入多个团队中的一个,彼此成为 friend ,甚至更多。在 RDBMS 中执行此操作既痛苦又缓慢,但使用 Neo4j 既简单又令人兴奋。 :)

我希望有一种方法可以查询

  • 1 跳之外的关系和
  • 2 跳之外的另一种关系

  • 来自同一个查询。
    START n=node:myIndex(user='345')
    MATCH n-[:IS_FRIEND|ON_TEAM*2]-m
    RETURN DISTINCT m;

    原因是,作为 friend 的用户相距一条边,而由团队链接的用户通过该团队节点链接,因此它们相距两条边。此查询执行 IS_FRIEND*2 和 ON_TEAM*2,获取队友(是的)和 friend 的 friend (嘘)。

    Cypher 中是否有一种简洁的方法可以在单个查询中获得不同的长度关系?

    最佳答案

    我重写它以返回一个集合:

    start person=node(1) 
    match person-[:IS_FRIEND]-friend
    with person, collect(distinct friend) as friends
    match person-[:ON_TEAM*2]-teammate
    with person, friends, collect(distinct teammate) as teammates
    return person, friends + filter(dupcheck in teammates: not(dupcheck in friends)) as teammates_and_friends

    http://console.neo4j.org/r/oo4dvx

    感谢您将示例数据库放在一起,Werner。

    关于具有可变关系路径长度的 Neo4j 密码查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14116741/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com