2015-10-19 54 views
0

我想返回一定的结构。 这里是我的查询:Cypher结果返回一定的结构

MATCH (tracker:tracker { active: true }) OPTIONAL MATCH (tracker { active: true })--(timer:timer) RETURN { tracker:tracker, timers:COLLECT(timer) } as trackers 

这里是我到目前为止返回:

{ 
    "results": [{ 
    "columns": ["trackers"], 
    "data": [{ 
     "row": [{ 
     "tracker": { 
      "title": "a", 
      "id": "04e3fddc-5aef-4c3a-9aeb-62a9fb15bd75", 
      "active": true 
     }, 
     "timers": [] 
     }] 
    }] 
    }], 
    "errors": [] 
} 

我想下的“跟踪器”与跟踪器的属性,以嵌套的计时器,如下所示:

{ 
    "results": [{ 
    "columns": ["trackers"], 
    "data": [{ 
     "row": [{ 
     "tracker": { 
      "title": "a", 
      "id": "04e3fddc-5aef-4c3a-9aeb-62a9fb15bd75", 
      "active": true, 
      "timers": [] 
     }] 
    }] 
    }], 
    "errors": [] 
} 

回答

1

试试这个:

MATCH (tr:tracker {active: true}) 
OPTIONAL MATCH (tr)--(ti:timer) 
WITH { 
    title: tr.title, 
    id: tr.id, 
    active: tr.active, 
    timers: COLLECT(ti) 
} as trackers 
RETURN trackers 
+0

我正在做这个解决方法,直到有更好的解决方案。我不想这样做的原因是我不想跟踪所有的属性。标题,ID和活动是我现在拥有的,但将来会有更多的属性,并且我不希望每次添加新属性时更新我的​​查询。 –