Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
02-26-2021 12:34 PM
Hello all,
I am working the below schema :
I want to fetch the Questions, but in case if the two questions have same QuestionLibraryId, I want either of the two returned.
So in the above scenario, I should only get one question in the output.
Any help would be really appreciated.
02-26-2021 03:19 PM
You can aggregate the questions by the library ID and take the head() of the resulting list:
... // assume q is in scope for the matched questions
WITH q.QuestionLibraryId as qID, collect(q) as questions
WITH head(questions) as question
...
Note that the questions
list is all the questions for a given question library ID, so if for a given ID there is only one question, then the questions list will be size 1 for that row. After the last WITH you will have a row per question, and no two questions across those rows will share the same QuestionLibraryId.
Of course you'll need to adjust as needed for whatever else you have in scope.
If there can be many questions with the same id, and you want a random one, then if you have APOC Procedures installed you can use the apoc.coll.randomItem()
function to take one from the list at random.
All the sessions of the conference are now available online