- 使用参数
- 查询参数
- :params
- 设置参数
- :param actorName: 'Tom Hanks'
- 参数的冒号后要用空格
- 使用参数用 $
- 设置数字
- :param number: 10
- 查询输入浮点形: 10.0
- :param number=> 10
- 强制数字为整数 =>
- :param number: 10
- 设置多个参数用大括号 {},参数用逗号分隔
- :params {actorName: 'Tom Cruise', movieName: 'Top Gun'}
- 删除参数(清除所有参数)
- :params {}
- 查询参数
- 减少内存
- CALL 分部查询
- CALL子句执行子句查询,指定一个可以从图中返回数据或从图中派生的数据的查询(先查询块中的结果,结果集在下面引用)
- CALL { MATCH (m:Movie) WHERE m.year = 2000 RETURN m ORDER BY m.imdbRating DESC LIMIT 10} MATCH (:User)-[r:RATED]->(m) RETURN m.title, avg(r.rating)
- MATCH (m:Movie) CALL { WITH m MATCH (m)<-[r:RATED]-(u:User) WHERE r.rating = 5 RETURN count(u) AS numReviews} RETURN m.title, numReviews ORDER BY numReviews DESC
- Neo4j 的查询数据顺序由上到下
- CALL子句执行子句查询,指定一个可以从图中返回数据或从图中派生的数据的查询(先查询块中的结果,结果集在下面引用)
- UNION 组合查询结果(与Oracle类似)
- UNION ALL 返回所有在内存上更有效但可能导致重复的结果。 UNION返回不同的结果。
- MATCH (m:Movie) WHERE m.year = 2000 RETURN {type:"movies", theMovies: collect(m.title)} AS data UNION ALL MATCH (a:Actor) WHERE a.born.year > 2000 RETURN { type:"actors", theActors: collect(DISTINCT a.name)} AS data
- CALL{ MATCH (m:Movie)<-[:ACTED_IN]-(p:Person) WHERE m.year = 2015 RETURN "Actor" AS type,p.name AS workedAs,collect(m.title) AS movies UNION ALL MATCH (m:Movie)<-[:DIRECTED]-(p:Person) WHERE m.year = 2015 RETURN "Director" AS type,p.name AS workedAs,collect(m.title) AS movies } RETURN COUNT(movies) AS numMovies
- CALL 分部查询
Neo4j优化
于 2023-02-24 18:33:36 首次发布