neo4j - Neo4j - 获取特定类型节点的所有父节点
问题描述
我是属性图和数据库的新手,写过更简单的密码查询。我有一个像下面这样的模型。
Project(is_lib: true|false)
Project[:HAS]-> Artifact[:HAS]-> Version
Version[:DEPENDS_ON]-> Version
例子
项目工件:
ProjectA(is_lib:false) -> ProjectA-ArtifactA -> [pa-v1.1, pa-v1.2]
ProjectB(is_lib:false) -> ProjectB-ArtifactB -> [pb-v2.0]
ProjectC(is_lib:true) -> ProjectC-ArtifactC -> [pc-v5.1, pc-v5.2]
关系:
pa-v1.1 -> pb-v2.0 -> pc-v5.1
pa-v1.2 -> pc-v5.2
以上 pc-v5.1 和 pc-v5.2 是一个lib类型,它是一个项目属性。我想得到项目类型lib:true的所有父母。 数据库中可能有大量项目。
所以在上面的例子中,我期待下面的结果。
pc-v5.1 has parents pa-v1.1, pb-v2.0.
pc-v5.2 has parents pa-v1.2.
我想要一个密码查询。如果有人能将结果指向我,我将不胜感激。
解决方案
我想出了密码查询。如果有人在寻找它作为记录。
不过,我必须寻找此查询的性能方面,而不是性能方面。
MATCH(j)-[:HAS]->(k)-[:HAS]->(l)<-[:DEPENDS_ON]-(m)<-[:HAS]-(n)<-[:HAS]-(o)
WHERE o.is_lib=false
return m, l
推荐阅读
- laravel - 如何从 Laravel 控制器编写 Javascript Sweet Alert?
- jenkins - 如何根据詹金斯上的用户输入在ansible中设置变量值
- javascript - 如何在循环(js)中从 Map(obj)获取键和值?
- shell - 将 CSV 更改为键值 (KV) 格式的脚本
- javascript - 本地文件夹中的 console.log 问题
- curl - 如何在java上使用带有curl的json rpc
- java - 如何使用 ActiveMQ 和 Camel 重新排队消息
- sql - 将数据从 tb1 移动到 tbl2
- javascript - 将不同的数据类型放入动态列表中
- javascript - 字符串的正则表达式 - 长度 9,第三个字符字母和剩余数字