我想找到仅与三种水果交易的名称节点。 我试图在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
,它返回如下查询。 但是,我只想要以下内容。仅交易葡萄,橙和苹果的人。
我不知道密码的哪一部分不正确。谢谢你的帮助
答案 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