spring-boot - 如何在neo4j中获取两个连接节点的级别(深度)数
问题描述
我使用 neo4j 作为图形数据库将用户的连接详细信息存储到其中。在这里,我想在他们的连接中显示一个用户相对于另一个用户的级别,例如 Linkedin。例如-第一层连接,第二层连接,第三层及第三层以上显示3+。但我不知道使用 neo4j 是如何发生这种情况的。我搜索了这个,但找不到任何解决方案。如果有人知道这一点,请帮助我实现此功能。
解决方案
要找到2 个特定人之间的最短“连接级别” ,只需获取最短路径并添加 1:
MATCH path = shortestpath((p1:Person)-[*..]-(p2:Person))
WHERE p1.id = 1 AND p2.id = 2
RETURN LENGTH(path) + 1 AS level
注意:您可能希望为可变长度关系模式设置一个合理的上限(例如,[*..6]
),以避免查询花费太长时间或在大型数据库中耗尽内存)。无论如何,您可能应该忽略非常远的连接。
推荐阅读
- c++ - 数组元素打印的递归方法
- ruby-on-rails - 对 JSONB 列上存储数组中第一个值的 Active Record 查询
- javascript - 添加动态标题属性以选择选项元素javascript
- rust - 从子 iter().map 中访问来自父级 iter().map 的变量会抛出 'error[E0597]: `x` does not live enough long' on compile'
- dart - Flutter Android PreferenceScreen 设置页面
- android - 反应本机 MainApplication.java 方法不会覆盖或实现超类型中的方法
- vala - 使用变量动态访问属性
- javascript - Office Fabric UI React - 选择问题
- excel-addins - 获取帖子请求在自定义功能 Office 插件中不起作用 [TypeError:网络请求失败]
- c# - Ninject 嵌套构造函数参数