Neo4J - 查找2个节点的数组属性中的值是否匹配

时间:2016-06-13 13:29:30

标签: neo4j iterated-function

您好我有一个用例,我有一个属性为array的节点。

*

Node({name:'a', colors:['red','green','blue']})
Node({node:'b',colors:['blue','black','red']})

*

现在我想知道它们的colors属性中2个节点之间的匹配值是什么。我应该能够得到匹配的值,以便在查询中进一步传递它以进行处理。

1 个答案:

答案 0 :(得分:2)

MATCH (a:Node {name:'a'})
MATCH (b:Node {name:'b'})
RETURN filter(x IN a.colors WHERE x IN b.colors);

如果您想继续查询:

MATCH (a:Node {name:'a'})
MATCH (b:Node {name:'b'})
WITH filter(x IN a.colors WHERE x IN b.colors) AS v
UNWIND v AS matchingVals
MATCH ...
...