Neo4j,Cypher使用COUNT和COLLECT返回JSON

问题描述 投票:0回答:1

我正在尝试返回这样的JSON对象:

{   "rels": [
    {
      "rel": "type_1",
      "foos": 15
    },
    {
      "rel": "type_2",
      "foos": 2073
    },
    {
      "rel": "type_3",
      "foos": 23
    }   ] }

使用查询。

MATCH (n:bar)<-[r:REL]-(n1:foo)
WHERE n.bar_id='1234567890'
RETURN collect({rel: r.rel_status, foos: count(r.rel_status)}) AS rels

REL关系具有名为rel_status的属性。

错误:不能在聚合函数中使用聚合函数。

json neo4j cypher
1个回答
2
投票

这是因为你试图在count()中使用collect(),这是不允许的。你需要一次完成这一步。

MATCH (n:bar)<-[r:REL]-(:foo)
WHERE n.bar_id='1234567890'
WITH r.rel_status as rel, count(r) as foos
RETURN collect({rel: rel, foos: foos}) AS rels
© www.soinside.com 2019 - 2024. All rights reserved.