cypher查询从属性数组中提取元素

use*_*590 0 neo4j cypher

我有一个关于从Neo4j中的数组值属性中提取特定元素的问题.例如,如果out数据库中的节点都具有属性'Scores',则Scores是长度为4的整数数组.有没有办法提取路径中每个节点的第一个和第四个元素,即我们可以沿着线 -

start src=node(1), end =node(7)
match path=src-[*..2]-end
return extract(n in nodes(path)| n.Scores[1], n.Scores[4]); 
Run Code Online (Sandbox Code Playgroud)

ps我正在使用Neo4j 2.0.0-RC1

cod*_*k3y 5

这对你有用吗?

START src=node(1), end=node(7)
MATCH path=src-[*..2]-end
RETURN extract(n in nodes(path)| [n.Scores[0], n.Scores[3]] )
Run Code Online (Sandbox Code Playgroud)

基本上,这是为第1和第4个(索引从0开始)得分的每个节点创建一个集合.见8.2.1.表达一般

Cypher中的表达式可以是:

...

  • 表达式集合:

    ["a", "b"], [1,2,3],["a", 2, n.property, {param}], [ ].