【发布时间】:2019-10-06 13:26:14
【问题描述】:
我有以下情况:
两种类型的节点; NodeA 和 NodeB。 NodeB 有许多不同的标签(比如[LABEL_i, LABEL_j, etc...]),我想找到从NodeA 到NodeB 的关系数量(比如LIKES),用于每个标签在NodeB。
对于单个标签,我可以执行以下操作:
MATCH (a:NodeA {uid: "<id>"})-[r:LIKES]-(b:NodeB:LABEL_i) RETURN count(b) as count
为此,我使用标签 LABEL_i 返回与 NodeB 的关系数。
我应该能够将上述逻辑组合成对 Neo4j 的单个查询,但我无法让它工作,我尝试了以下方法(只是响应中的字段):
MATCH (a:NodeA {uid: "<id>"})-[r:LIKES]-(b:NodeB) RETURN DISTINCT LABELS(b), count(b), SIZE(LABLES(b))
但是我从中得到的数据不是我期望或需要的,我也找不到其他可行的方法,以下也是我尝试过的
FOREACH (lab in ["LABEL_i", "LABEL_j"] |
MATCH (a:NodeA {uid: "<id>"})-[r:LIKES]-(b:lab) RETURN count(b) as count
)
Neo.ClientError.Statement.SyntaxError: Invalid use of MATCH inside FOREACH (line 2, column 3 (offset: 49))
任何关于如何编写此查询的帮助将不胜感激,我最近才开始使用 Neo4j。
【问题讨论】:
标签: neo4j cypher graph-databases