|| apoc.agg.slice - APOC 核心文档 - Neo4j 文档

apoc.agg.slice

详情

语法

apoc.agg.slice(value [, from, to ])

描述

从给定集合中返回非空值的子集(该集合被认为是零索引的)。要指定从开始到集合末尾的范围,长度应设置为 -1。

参数

名称

类型

描述

value

任意类型

聚合中要相乘的值。

from

整数

指定范围内开始返回值的索引。默认值为:0

to

整数

范围内最后一个值的非包含索引。默认值为:-1

返回

LIST<任意类型>

使用示例

本节示例基于以下示例图

CREATE (Keanu:Person {name:'Keanu Reeves', born:1964})
CREATE (TomH:Person {name:'Tom Hanks', born:1956})

CREATE (TheMatrix:Movie {title:'The Matrix', released:1999, tagline:'Welcome to the Real World'})
CREATE (TheMatrixReloaded:Movie {title:'The Matrix Reloaded', released:2003, tagline:'Free your mind'})
CREATE (TheMatrixRevolutions:Movie {title:'The Matrix Revolutions', released:2003, tagline:'Everything that has a beginning has an end'})
CREATE (SomethingsGottaGive:Movie {title:"Something's Gotta Give", released:2003})
CREATE (TheDevilsAdvocate:Movie {title:"The Devil's Advocate", released:1997, tagline:'Evil has its winning ways'})

CREATE (YouveGotMail:Movie {title:"You've Got Mail", released:1998, tagline:'At odds in life... in love on-line.'})
CREATE (SleeplessInSeattle:Movie {title:'Sleepless in Seattle', released:1993, tagline:'What if someone you never met, someone you never saw, someone you never knew was the only someone for you?'})
CREATE (ThatThingYouDo:Movie {title:'That Thing You Do', released:1996, tagline:'In every life there comes a time when that thing you dream becomes that thing you do'})
CREATE (CloudAtlas:Movie {title:'Cloud Atlas', released:2012, tagline:'Everything is connected'})

CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrix)
CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrixReloaded)
CREATE (Keanu)-[:ACTED_IN {roles:['Neo']}]->(TheMatrixRevolutions)
CREATE (Keanu)-[:ACTED_IN {roles:['Julian Mercer']}]->(SomethingsGottaGive)
CREATE (Keanu)-[:ACTED_IN {roles:['Kevin Lomax']}]->(TheDevilsAdvocate)

CREATE (TomH)-[:ACTED_IN {roles:['Joe Fox']}]->(YouveGotMail)
CREATE (TomH)-[:ACTED_IN {roles:['Sam Baldwin']}]->(SleeplessInSeattle)
CREATE (TomH)-[:ACTED_IN {roles:['Mr. White']}]->(ThatThingYouDo)
CREATE (TomH)-[:ACTED_IN {roles:['Zachry', 'Dr. Henry Goose', 'Isaac Sachs', 'Dermot Hoggins']}]->(CloudAtlas);
apoc.agg.slice
MATCH (p:Person)-[:ACTED_IN]->(movie)
WITH p, movie
ORDER BY p, movie.released
RETURN p.name AS person, apoc.agg.slice(movie, 0, 3) AS movies
使用 Cypher 的 COLLECT
MATCH (p:Person)
WITH p, COLLECT {
  MATCH (p)-[:ACTED_IN]->(movie)
  WITH p, movie ORDER BY p, movie.released
  RETURN movie LIMIT 3
} AS movies
RETURN p.name AS person, movies
结果
人物 电影

"基努·里维斯"

[(:Movie {tagline: "Evil has its winning ways", title: "The Devil’s Advocate", released: 1997}), (:Movie {tagline: "Welcome to the Real World", title: "The Matrix", released: 1999}), (:Movie {tagline: "Free your mind", title: "The Matrix Reloaded", released: 2003})]

"汤姆·汉克斯"

[(:Movie {tagline: "What if someone you never met, someone you never saw, someone you never knew was the only someone for you?", title: "Sleepless in Seattle", released: 1993}), (:Movie {tagline: "In every life there comes a time when that thing you dream becomes that thing you do", title: "That Thing You Do", released: 1996}), (:Movie {tagline: "At odds in life…​ in love on-line.", title: "You’ve Got Mail", released: 1998})]

© . This site is unofficial and not affiliated with Neo4j, Inc.