2015-10-19 3 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

Я делаю это как временное решение, пока не будет лучшего решения. Причина, по которой я не хочу этого делать, заключается в том, что я не хочу отслеживать все свойства. Title, id и active - это то, что у меня есть сейчас, но в будущем будет еще много свойств, и я не хочу обновлять свой запрос каждый раз при добавлении нового свойства. –

Смежные вопросы