Neo4j优化

  • 使用参数
    • 查询参数
      • :params
    • 设置参数
      • :param actorName: 'Tom Hanks'
      • 参数的冒号后要用空格
    • 使用参数用 $
      • MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WHERE p.name = $actorName RETURN m.released AS releaseDate,m.title AS title ORDER BY m.released DESC
      • 多个参数
        • MATCH (p:Person)-[:ACTED_IN]->(m:Movie) WHERE p.name = $actorName AND m.title = $movieName RETURN p, m
    • 设置数字
      • :param number: 10
        • 查询输入浮点形: 10.0
      • :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 的查询数据顺序由上到下
    • 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值