Мне сложно собирать данные из двух разных источников и объединять коллекции так, чтобы последний был набором объектов, упорядоченных по «dateCreated».Neo4j cypher query: using ORDER BY with COLLECT (S)
Контекст
Пользователи могут задавать вопросы в группах. Вопрос может быть как общим, так и связанным с конкретной видео-игрой. Если вопрос, заданный в группе, связан с видеоигрой, этот вопрос также появляется на странице вопросов видеоигр.
В настоящее время у меня есть два общих вопроса и один для одной видеоигры. Следовательно, при получении вопросов у меня должно быть 3 вопроса.
Запрос
Вот запрос:
START group = node(627)
MATCH generalQuestions-[?:GENERAL_QUESTION]->group
WITH group, generalQuestions
MATCH gamesQuestions-[?:GAME_QUESTION]->games<-[:GAMES]-group
WITH (collect(generalQuestions) + collect(gamesQuestions)) as questions
RETURN questions
ORDER BY questions.dateCreated
Первый вопрос: с помощью ORDER BY
Cached(questions of type Collection) expected to be of type Map but it is of type Collection - maybe aggregation removed it?
Что такое правильный способ достижения того, что я пытаюсь сделать ?
Второй вопрос: неправильные результаты
Если удалить ОКВЕК ВУ, вместо того, 3 результаты, я получаю 14 ...:
[
Node[641]{dateCreated:1380892636,dateUpdated:1380892636,title:"GENERAL TITLE 1",type:1,content:"GENERAL CONTENT 1"},
Node[641]{dateCreated:1380892636,dateUpdated:1380892636,title:"GENERAL TITLE 1",type:1,content:"GENERAL CONTENT 1"},
Node[641]{dateCreated:1380892636,dateUpdated:1380892636,title:"GENERAL TITLE 1",type:1,content:"GENERAL CONTENT 1"},
Node[641]{dateCreated:1380892636,dateUpdated:1380892636,title:"GENERAL TITLE 1",type:1,content:"GENERAL CONTENT 1"},
Node[641]{dateCreated:1380892636,dateUpdated:1380892636,title:"GENERAL TITLE 1",type:1,content:"GENERAL CONTENT 1"},
Node[641]{dateCreated:1380892636,dateUpdated:1380892636,title:"GENERAL TITLE 1",type:1,content:"GENERAL CONTENT 1"},
Node[642]{dateCreated:1380892642,dateUpdated:1380892642,title:"GENERAL TITLE 2",type:1,content:"GENERAL CONTENT 2"},
Node[642]{dateCreated:1380892642,dateUpdated:1380892642,title:"GENERAL TITLE 2",type:1,content:"GENERAL CONTENT 2"},
Node[642]{dateCreated:1380892642,dateUpdated:1380892642,title:"GENERAL TITLE 2",type:1,content:"GENERAL CONTENT 2"},
Node[642]{dateCreated:1380892642,dateUpdated:1380892642,title:"GENERAL TITLE 2",type:1,content:"GENERAL CONTENT 2"},
Node[642]{dateCreated:1380892642,dateUpdated:1380892642,title:"GENERAL TITLE 2",type:1,content:"GENERAL CONTENT 2"},
Node[642]{dateCreated:1380892642,dateUpdated:1380892642,title:"GENERAL TITLE 2",type:1,content:"GENERAL CONTENT 2"},
Node[632]{dateCreated:1380889484,dateUpdated:1380889484,title:"GTA5 TITLE",type:2,content:"GTA5 CONTENT"},
Node[632]{dateCreated:1380889484,dateUpdated:1380889484,title:"GTA5 TITLE",type:2,content:"GTA5 CONTENT"}
]
Есть ли что-то не так с тем, как Я собираю результаты?
EDIT
Расширенный запрос для получения gamesQuestion:
gamesQuestions-[:GAME_QUESTION]->()<-[:QUESTIONS]-games-[:INTERESTS]->()<-[:HAS_INTEREST_FOR]-interests<-[:INTERESTS]-group
Спасибо за вашу помощь,
Лиза, спасибо вам за ответ! Я понимаю, почему я не мог использовать Order By. Но скажем, для «игровых вопросов» вместо игрQuestions - [?: GAME_QUESTION] -> games <- [: GAMES] -группа, у меня есть игрыQuestions - [: GAME_QUESTION] ->() <- [: QUESTIONS] -games - [: INTERESTS] ->() <- [: HAS_INTEREST_FOR] -interests <- [: INTERESTS] - группа (на этот раз цель состоит в том, чтобы получить все вопросы игр, обсуждаемых группой). Есть ли у вас идеи, можно ли получить как общие, так и игровые вопросы так же, как и столбцы или строки? – Brice
Я обновил ответ, чтобы решить расширенный случай. –
Спасибо тебе столько Лизы! :) – Brice