首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >匹配同一关系的位置和位置

匹配同一关系的位置和位置
EN

Stack Overflow用户
提问于 2019-12-06 09:24:38
回答 1查看 31关注 0票数 1

给定以下架构,中间的节点称为业务,卫星节点称为BusinessType。这种关系是一对多,因为一家企业有许多BusinessType节点。我要做的是获取BusinessType等于一组代码的所有业务节点。问题是我要返回的业务节点只有一部分条件。例如:

代码语言:javascript
复制
MATCH (business:Business {uuid: 'f872e7d4-1105-11ea-9461-4cedfb791f65'})-[r:BUSINESS_HAS_TYPE]->(bt:BusinessType) 
return *

返回下面的结果。

代码语言:javascript
复制
MATCH (business:Business) 
MATCH (business)-[r:BUSINESS_HAS_TYPE]->(bt:BusinessType) 
WHERE bt.slug = 'rail-doors' AND bt.slug = 'pergolas'
RETURN business

我在上面的查询中要做的是获取所有业务节点,其中它们的BusinessType与“rail doors”和“pergolas”匹配。由于某种原因,这将返回null,尽管很明显存在一个潜在的匹配,如前面的查询所示。

我也尝试过使用['rail-doors','pergolas'],但这显然是错误的,因为它会返回任何具有这两者之一的业务。

欢迎任何意见

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-12-06 09:55:33

对于同一属性,单个节点不能同时具有两个不同的值。您需要一个跨所有相关:BusinessType节点查找每个所需值的查询。

请尝试以下查询:

代码语言:javascript
复制
MATCH (business:Business)-[:BUSINESS_HAS_TYPE]->(bt:BusinessType)
WITH business, COLLECT(bt.slug) AS slugs
WHERE ALL(x IN ['rail-doors', 'pergolas'] WHERE x IN slugs)
RETURN business 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59205584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档