检查neo4j中的collect中是否存在序列

检查neo4j中的collect中是否存在序列,neo4j,cypher,Neo4j,Cypher,有人能告诉我们如何比较Cypher/Neo4j中是否存在序列吗 比如,如果我说当collect()在遍历时收集元素时,我们可以检查这个序列在收集[Element1,Element2,Element3]后是否存在吗?根据您是否允许间隙,您可以找到e1..e3的索引并查看它们是否在上升(带间隙)(apoc.coll.indexOf) 或者您可以提取3个元素的子列表并进行比较 WITH [1,2,3,4,5] as coll, [2,3,4] as seq WHERE any(idx IN range

有人能告诉我们如何比较Cypher/Neo4j中是否存在序列吗


比如,如果我说当
collect()
在遍历时收集元素时,我们可以检查这个序列在收集
[Element1,Element2,Element3]
后是否存在吗?

根据您是否允许间隙,您可以找到e1..e3的索引并查看它们是否在上升(带间隙)(apoc.coll.indexOf)

或者您可以提取3个元素的子列表并进行比较

WITH [1,2,3,4,5] as coll, [2,3,4] as seq
WHERE any(idx IN range(0,length(coll)-length(seq)) WHERE coll[idx..idx+length(seq)] = seq)
RETURN coll, seq

谢谢你,迈克尔。但是这个查询并没有返回任何匹配的结果(le:Lead{name:'Varun1'})-[:have]>(e:Events)-[l:nextevent*]-(c)将le、collect(labels(c))作为行1、[“Email”、“SMS”、“Call”]作为行2,其中任何(范围(0,长度(row1)-length(row2))中的idx,其中row1[idx..idx+length(row2)]=row2)返回le@VarunTahin问题是
labels
函数返回一个数组。试试这个:
。。。collect(labels(c)[0])作为第1行…
非常感谢Michael。与其在集合中查找序列,不如说您在路径的节点上查找标签序列。如果是这样的话,请澄清你的问题,因为这会带来更多的选择。