找到适合三个条件的特定节点neo4j

时间:2018-11-22 04:16:13

标签: neo4j

我想找到仅与三种水果交易的名称节点。 我试图在neo4j中使用以下代码。

match (s:good)-[r:TRADES]-(n:Name)-[:TRADES]-(p:good)
WHERE (s.good = 'Apple' or s.good='Orange') and p.stock ='Grapes'
return s,n,p

,它返回如下查询。 enter image description here 但是,我只想要以下内容。仅交易葡萄,橙和苹果的人。 enter image description here

我不知道密码的哪一部分不正确。谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

我们在match intersection上有一篇知识库文章,您想在这里做什么,但是您的其他限制是,这是仅有的3个相连的节点,因此我们还有其他工作要做。

使用本文中的第一种方法,我们只需要添加一个附加谓词即可确保:TRADES关系的程度等于集合的大小:

WITH ['Apple', 'Orange', 'Grapes'] as names
MATCH (g:good)<-[:TRADES]-(n:Name)
WHERE g.good in names AND size((n)-[:TRADES]->()) = size(names)
WITH n, size(names) as inputCnt, count(DISTINCT g) as cnt
WHERE cnt = inputCnt
RETURN n