2016-03-16 3 views
0

Так что я в настоящее время есть Neo4j Cypher запрос, который соответствует несколько значений, и, прежде чем он возвращает данные, я это отсортированный по атрибуту называется TIDNeo4j Как заказать атрибутом для 1 узла, а затем атрибут из другого узла

CQL фрагмент кода (я добавил комментарии, которые могут быть ошибочными, но это то, что я думаю, что это делает так, поправьте меня, если я ошибаюсь.).:

// Neo will order by the attribute tid within the node box in ascending order 
order by box.tid 

// Neo will then collect each nodes values and set it eql to their respective collections 
with user, mission, task, collect(box) as box 
with user, mission, {task:collect(task), box:box} as task 
with user, {mission:collect(mission), tasks:task} as mission 

// Neo will return the values 
return {user:user, mission:collect(mission)} 

у меня есть вопрос в том, как я могу сохранить возвращенные результаты, где он заказывается box.tid

Но также иметь его или снова вернулся во второй раз миссией.wid?

Я пробовал:

order by box.tid 

with user, mission, task, collect(box) as box 
with user, mission, {task:collect(task), box:box} as task 
with user, {mission:collect(mission), tasks:task} as mission 
order by mission.wid 
return {user:user, mission:collect(mission)} 

но это просто не работает, возвращаемые результаты еще не сортировать по mission.wid, но это, кажется, сохранить порядок от предыдущего запроса.

Любые подсказки? Спасибо.

ответ

0

Помимо этого: во втором фрагменте, я считаю, что линия mission.wid на самом деле ORDER BY mission.wid, и я продолжу соответственно.

Предложение в следующем подблоке (из вашего второго фрагмента) не имеет смысла.

WITH user, {mission:collect(mission), tasks:task} AS mission 
ORDER BY mission.wid 

Он пытается заказать mission объект его свойство wid, но этот объект не имеет такого свойства (он имеет только mission и tasks свойствами). Поэтому он не меняет порядок.

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