我有 2 个节点类型,比如说 A 和 B,以及与属性的关系,我们将其称为“a_has_b”,属性为“value”
首先,我想计算 A 类型的特定节点具有的关系数量。
MATCH (a:A)-[r:a_has_b]->(b:B)
WHERE a.id='123'
RETURN COUNT(r) as count
Run Code Online (Sandbox Code Playgroud)
我还想从关系中获取按属性排序的前 n 个 B
MATCH (a:A)-[r:a_has_b]->(b:B)
WHERE a.id='123'
RETURN r, b
ORDER BY r.value
LIMIT 3
Run Code Online (Sandbox Code Playgroud)
现在,很明显我做了两次同样的事情,改变了返回值。
我怎样才能将它们结合在一起以获得所需的结果?
您可以结合collect
和range
:
MATCH (a:A)-[r:a_has_b]->(b:B)
WHERE a.id='123'
WITH a,
r,
b
ORDER BY r.value
RETURN a,
COUNT(r) AS count,
COLLECT([r,b])[0..3] AS rels
Run Code Online (Sandbox Code Playgroud)