Neo4j: Каков правильный синтаксис для вложения и порядка сортировки результатов анализа списка?
В моей записи есть медиа-узлы, каждый из которых связан с пользователями, которые изменили медиа-файлы.Я пытаюсь собрать всю информацию о моей записи.
Простое понимание списка отлично работает:
MATCH r
RETURN r {.*, Media: [(r)-[:HAS_MEDIA]->(m:Media) | m {.URL, .Type, .Order}]}
Вот мои вопросы:
1) если есть много медиа, как я могу отсортировать список по .Order?
2) Я также хочу собрать информацию о m, доступную через другие узлы.Поэтому я попытался вложить:
MATCH r
RETURN r {.*, Media: [(r)-[:HAS_MEDIA]->(m:Media) | m {.URL, .Type, .Order, [(m:Media-[t:MODIFIED_BY]->(u) | u.UserID] }]}
Это приводит к синтаксической ошибке в первой вложенной скобке.Можно ли это сделать?
В идеале я хотел бы собрать больше, чем u.UserID, в том числе в свойстве отношений .DT.
3) Когда / если я получу эту работу, тот же вопрос, что и1) - как мне отсортировать список по .DT?
Буду очень признателен за любые указатели!
--------- ОБНОВЛЕНИЕ После ответа от cybersam: ДА!Мне нужно добавить новые имена свойств, как указано в cybersam.Спасибо!
MATCH (r)
RETURN r {.*, Media: [(r)-[:HAS_MEDIA]->(m:Media) | m {.URL, .Type, .Order, UserID: [(m)-[:MODIFIED_BY]->(u) | u.UserID] }]}
MATCH (r)
RETURN r {.*, Media: [(r)-[:HAS_MEDIA]->(m:Media) | m {.URL, .Type, .Order, UserID: [(m)-[t:MODIFIED_BY]->(u) | u {.UserID, DT: t.DT}] }]}
Мне нужно немного больше изучить заказ, но я не верю, что ORDER BY r.Order в самом конце будет работать.Я возвращаю только один r узел.В этом массиве r я хочу отсортировать подключи (например, Media по .Order и User по t.DT).