匹配其数组属性与其他数组之间存在任何交集的节点

时间:2016-06-13 22:33:04

标签: neo4j

假设我们有节点具有数组属性。

节点1 水果= ['苹果'芒果']

节点2 水果= ['苹果']

节点3 水果= ['番茄']

我们希望找到所有节点,其中一个水果存在于Maria的篮子里。

Maria的篮子= [' orange',' grape'' apple']

所以我们的最终结果将是:节点1和节点2.

我的方法是匹配其水果阵列元素存在的所有节点与Maria的篮子。但我无法让它工作

匹配(n)其中x在[' orange',' grape',' apple']中的n.fruits返回n

我尝试了上面的查询并返回语法错误,因为未定义x。我们如何正确处理这个问题?

我想到的第二种方法是,如果节点的成果与Maria的成果之间存在UNION,则匹配所有节点。

1 个答案:

答案 0 :(得分:1)

如果您想找到一个水果匹配的节点:

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range("M9")) Is Nothing Then
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Call Macro5
    Application.EnableEvents = True
    Application.ScreenUpdating = True

    End If

If Not Intersect(Target, Range("I88")) Is Nothing Then
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Call Macro6
    Application.EnableEvents = True
    Application.ScreenUpdating = True

    End If

  End Sub

如果要查找> = 1个水果匹配的节点:

MATCH (n) 
WHERE single(x IN n.fruits WHERE x IN ['orange', 'grape', 'apple'])
RETURN n;

根据你的措辞,我不确定你想要哪一个。