【问题标题】:Return all nodes and their relationships iff node has more than 1 relationship返回所有节点及其关系当且仅当节点有超过 1 个关系
【发布时间】:2019-10-10 12:18:58
【问题描述】:

我是编写密码的新手。

我正在尝试执行一个查询,该查询返回我的数据库中与两个或更多节点相关的节点。

希望它有意义,并在此先感谢。

【问题讨论】:

  • 即使是“叶子”节点也可以与 2 个或更多节点相关(取决于您希望如何定义“叶子”的概念)。你能把你的问题说得更清楚些吗?
  • 我可以试试。如果一个节点与两个或多个节点有关系,我想返回该节点及其关系。如果它与一个或零个节点有关,我不想要它。它更有意义吗?不完全确定如何使其更明确。
  • 我已经调整了主题以符合您的评论。

标签: neo4j cypher


【解决方案1】:

[更新]

1。 这将返回具有超过 1 个关系的每个节点及其关系:

MATCH (n)-[r]-()
WITH n, COLLECT(r) AS rs
WHERE SIZE(rs) > 1
RETURN n, rs

2。 这将返回与多个节点有关系的每个节点及其关系:

MATCH (n)-[r]-(m)
WITH n, COLLECT(r) AS rs, COUNT(DISTINCT m) AS mCount
WHERE mCount > 1
RETURN n, rs

【讨论】:

  • 谢谢!这几乎就是我要找的。该查询返回所有节点及其关系,当且仅当节点具有超过 1 个关系。事情是,在我的数据库中,节点 A 可以与另一个节点 B 有超过 1 个关系。因此,我正在寻找的是一个返回所有节点及其关系的查询,如果节点与超过 1 个节点有关系。所以A与B相关,A与C相关应该返回A。A与B有1条以上的关系不应该返回A。有意义吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多