微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Neo4j Cypher 从同一节点查询多个关系

如何解决Neo4j Cypher 从同一节点查询多个关系

我有一个名为 class AuthorizationHeaderMiddleware: def __init__(self,get_response=None): self.get_response = get_response def process_view(self,request,view_func,view_args,view_kwargs): view_name = '.'.join((view_func.__module__,view_func.__name__)) #print(view_name) if view_name in EXCLUDE_FROM_MIDDLEWARE: return None def __call__(self,request): access_token = request.COOKIES.get('access') if access_token: request.Meta['HTTP_AUTHORIZATION'] = f'Bearer {access_token}' return self.get_response(request) 的节点,它具有与 MemberClubs关系 我想创建一个查询,以便我可以返回 {{1} }与ShopsMember

Clubs

在示例中,我得到 ShopsMATCH (m: Member { username: $memberUsername,password: $password})<- [r: MEMBER_BELONGS_TO_CLUBS] - (c: Club) RETURN m,c,r ,但我想得到成员 Member 和成员 Clubs

解决方法

如果你的节点M是这样连接的S -> M <- C(M是Member,S是Shop,C是Club),那么你可以在 documentation 中使用 4.2 Multiple Relationships 中的类似查询示例:

MATCH (s: Shop) - [rs: MEMBER_BELONGS_TO_SHOPS] ->
      (m: Member { username: $memberUsername,password: $password}) <- [r: MEMBER_BELONGS_TO_CLUBS] - (c: Club)
RETURN m,c,r,s,rs

您也可以将 example 中的语法与多个 MATCH 一起使用:

MATCH (m: Member { username: $memberUsername,password: $password})
MATCH (s: Shop) - [rs: MEMBER_BELONGS_TO_SHOPS] -> (m)
MATCH (m) <- [r: MEMBER_BELONGS_TO_CLUBS] - (c: Club)
RETURN m,rs

并且两个查询仅在 MSC 都连接时返回一些内容。如果你 不希望您可以使用 OPTIONAL MATCH documentation 的限制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。