Neo4j 使用cypher将集合与另一个集合进行比较
在这种情况下,我必须使用cypher将一个集合中的所有元素与另一个集合进行比较,以查看这些项是否相等(忽略元素的顺序)。最后我写了下面这个密码 匹配(用户:用户)WHERE all(条件0在[“管理”,“用户”]中,条件0在[“管理”,“只读])中)返回用户。Neo4j 使用cypher将集合与另一个集合进行比较,neo4j,comparison,cypher,Neo4j,Comparison,Cypher,在这种情况下,我必须使用cypher将一个集合中的所有元素与另一个集合进行比较,以查看这些项是否相等(忽略元素的顺序)。最后我写了下面这个密码 匹配(用户:用户)WHERE all(条件0在[“管理”,“用户”]中,条件0在[“管理”,“只读])中)返回用户。 上面的查询肯定是错误的,但我正在尝试查看其他备选方案,通过它们我可以形成查询以获得结果。您可以使用=运算符: return [1,2,3] = [1,2,3] //true return [1,2,3] = [1,2] // fal
上面的查询肯定是错误的,但我正在尝试查看其他备选方案,通过它们我可以形成查询以获得结果。您可以使用
=
运算符:
return [1,2,3] = [1,2,3] //true
return [1,2,3] = [1,2] // false
return [1,2,3] = [3,2,1] // false
=
还检查两个集合是否完全相同。若要忽略排序,您需要先对这两个集合进行排序,然后再使用展开
和按顺序
组合:
with [1,2,3] as coll1, [3,2,1] as coll2
unwind coll1 as c // sort coll1
with c order by c, coll2
with collect(c) as coll1s, coll2
unwind coll2 as c // sort coll2
with coll1s, c order by c
with coll1s, collect(c) as coll2s
return coll1s = coll2s
您可以使用
=
运算符:
return [1,2,3] = [1,2,3] //true
return [1,2,3] = [1,2] // false
return [1,2,3] = [3,2,1] // false
=
还检查两个集合是否完全相同。若要忽略排序,您需要先对这两个集合进行排序,然后再使用展开
和按顺序
组合:
with [1,2,3] as coll1, [3,2,1] as coll2
unwind coll1 as c // sort coll1
with c order by c, coll2
with collect(c) as coll1s, coll2
unwind coll2 as c // sort coll2
with coll1s, c order by c
with coll1s, collect(c) as coll2s
return coll1s = coll2s