有没有一种简单的方法可以确保 Neo4j/Cypher 中集合中的元素是唯一的?比如将集合变成哈希集?
最佳答案
根据您想要执行的操作,您也许可以使用 Cypher 来完成此操作。
例如,如果您只想将不存在的项目添加到属性中,则可以通过多种方式执行此操作。
此示例过滤查询,如果集合修改是唯一被修改的属性,则该示例非常有用:
START n=node({id}) WHERE NONE(x IN n.cols WHERE x = {val}) SET n.cols = n.cols + {val} RETURN n;
下一个示例最终将始终修改属性,但会确保唯一性,并且如果还需要同时修改其他一些属性,这将是一个有用的方法,但副作用是项目的顺序将更改:
START n=node({id})
WITH n, FILTER(x IN n.cols WHERE x <> {val}) as existingCols
SET n.cols = existingCols + {val}
RETURN n
关于neo4j - Neo4j 集合中的独特元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19502294/