Neo4j Cypher - 删除给定索引处的数组属性

时间:2014-12-26 18:36:38

标签: neo4j cypher

如何使用Cypher删除属性数组中的元素?

例如,假设已在查询中设置user,我知道您可以使用REMOVE删除属性,例如

REMOVE user.favouriteColours

但如果这是一个数组,我怎么能删除第一个元素?

REMOVE user.favouriteColours[0]

REMOVE user.favouriteColours.0

不起作用,我似乎无法在Google或文档上看到任何内容。

由于

编辑:

我应该提一下,我知道您可以使用user.favouriteColours[0]返回以获取第一个元素,但删除不起作用

1 个答案:

答案 0 :(得分:2)

要删除数组的第一个元素,可以使用tail函数:

MATCH (user:User {id:123})
SET user.favouriteColors = tail(user.favouriteColors)

如果你需要通过删除数组的第n个元素来更一般地解决这个问题;

MATCH (user:User {id:123})
SET user.favouriteColors = user.favouriteColors[0..n] +
    user.favouriteColors[n+1..length(user.favouriteColors)]