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

时间:2013-12-13 00:33:19

标签: 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]); 

P.S。我正在使用Neo4j 2.0.0-RC1

1 个答案:

答案 0 :(得分: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]] )

基本上,为第1和第4个(索引从0开始)得分的每个节点创建一个集合。见8.2.1. Expressions in general

  

Cypher中的表达式可以是:

     

...

     
      
  • 表达式集合:

         

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

  •