Sar*_*ash 20 arrays neo4j cypher neo4jphp
我是Neo4j的新手,我有两个节点user并且files有关系:contains,这个关系有一个属性id是一个数组,表示为
(:user)-[:contains{id:[12345]}]->(:files)
Run Code Online (Sandbox Code Playgroud)
但是我想id用值填充属性数组1111并14567 依次使用Cypher查询,我没有找到任何将值推入数组的方法.
在将1111插入财产id之后将会是
(:user)-[:contains{id:[12345,1111]}]->(:files)
Run Code Online (Sandbox Code Playgroud)
在将14567插入财产id之后将会是
(:user)-[:contains{id:[12345,1111,14567]}]->(:files)
Run Code Online (Sandbox Code Playgroud)
我不知道如何顺序地将值填充到属性数组
请帮助,提前致谢
jja*_*erg 40
向数组添加值类似于递增整数或连接字符串,并以相同的方式表示,在您的情况下(让c我们[c:contains {id:[12345]}])
c.id = c.id + 1111 // [12345,1111]
c.id = c.id + 14567 // [12345,1111,14567]
Run Code Online (Sandbox Code Playgroud)
要么
c.id = c.id + [1111,14567] // [12345,1111,14567]
Run Code Online (Sandbox Code Playgroud)
除了 jjaderberg 的答案,以防其中一个属性为空,这可能会导致可怕的错误:
SET n.id = coalesce(n.id, []) + n.additionalId
合并从左到右通过逗号分隔的列表(在括号内)并跳过作为Null值的变量。所以在这种情况下,如果n.id最初Null是合并将采用第二个参数,即空数组。