neo4j - 如何在 neo4j 中以可选的方式显示关系?
问题描述
我在 neo4j 中有多个节点和关系,某些节点的关系深度为 4,而某些节点的关系深度为 2。我正在使用 neo4j 的 HTTP API 以图形格式获取数据
示例查询:
MATCH p= (n:datasource{resource_key:'ABCD'})-[:is_dataset_of]-(c:dataset)-[q]-(v:dataset_columns)-[s]-(b:component)-[w]-(e:dashboard) return p
如果我使用这个查询,那么如果存在这种确切的关系,我可以获得输出,但如果第二个关系不可用,我也想获得输出,关于如何实现这一点的任何指针?
解决方案
这是一种方法:
MATCH p = (:person1 {hobby: 'gamer'})-[:knows]-(:person2)
RETURN p
UNION ALL
MATCH p = (:person1 {hobby: 'gamer'})-[:knows]-(:person2)--(:person3)
RETURN p
UNION子句结合了 2 个查询的结果。并且该ALL
选项告诉UNION
不要打扰删除重复的结果(因为 2 个子查询永远不会产生相同的路径)。
推荐阅读
- graphql - Keystone 6上的GraphQL where子句中的错误
- python - asyncio 从财务 yahoo 下载选项报价
- rich-notifications - 如何获得丰富的 chrome 通知以在通知弹出时堆叠通知?
- javascript - 带有检测滚动的无限画廊
- python - 如何将列表作为参数传递给 ThreadPoolExecutor 并获取索引和值
- javascript - 用javascript激活php表单不起作用
- python - 列表和数据框的交集,保留列表的重复项,但显示数据框中列的值
- django - 用于测试的 django cookiecutter 媒体/位置
- python - 从相似类型中提取一个 url
- sql - 执行使用的 Postgresql 变量使用不返回结果