如何解决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)
的节点,它具有与 Member
和 Clubs
的 关系 我想创建一个查询,以便我可以返回 {{1} }与Shops
和Member
Clubs
在示例中,我得到 Shops
和 MATCH (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
并且两个查询仅在 M
与 S
和 C
都连接时返回一些内容。如果你
不希望您可以使用 OPTIONAL MATCH
documentation 的限制。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。