Как сравнить только последний элемент из набора свойств из нескольких узлов в Neo4j, не зная длины набора свойств?
В Neo4j у меня есть несколько узлов с наборами свойств различной длины.
Например, набор узлов
(id:PERSON{userid:0, education_school_id[21,25,29]})
(id:PERSON{userid:1, education_school_id[21]})
(id:PERSON{userid:2, education_school_id[21,25]})
(id:PERSON{userid:3, education_school_id[21,25,27]})
(id:PERSON{userid:4, education_school_id[21,25,66]})
(id:PERSON{userid:5, education_school_id[21,25,27]})
(id:PERSON{userid:6, education_school_id[21,25,29,43,22]})
(id:PERSON{userid:7, education_school_id[21,22]})
(id:PERSON{userid:8, education_school_id[21,25]})
(id:PERSON{userid:9, education_school_id[21,25,27,24,32]})
(id:PERSON{userid:10, education_school_id[21,25,66,29]})
(id:PERSON{userid:11, education_school_id[21,25,44]})
Теперь я хочу запрос запроса шифрования, который сравнивает только последнее свойство всех наборов свойств и группирует узлы в соответствии с их идентификатором пользователя следующим образом
29 0,10
21 1
25 2,8
32 9
44 10
22 6,7
27 3,5
66 4
[порядок не важен]
Это будет немного похоже на сравнение с array[length-1]
для массива.
Я не знаю длины отдельных списков.
В настоящее время я использую,
match(n) where exists(n.education_school_id) return n.education_school_id, collect(n.userid) ;
Однако это группирует узлы по наборам свойств в целом.
Любая помощь будет оценена.
На другой ноте: за многие мои вопросы в последнее время ставят под сомнение. Если кто-то хочет понизить голос, не стесняйтесь, но оставьте конструктивную критику. Я стараюсь максимально приблизить свои вопросы к правилам сайта. Оставьте советы, где я иду не так, несмотря на все мои усилия.
1 ответ
Вы хотите last()
функция.
Я не отрицал, но вы опубликовали ряд вопросов, ответ на которые просто в документации, как этот. Это не сложный вопрос, вы могли бы найти его самостоятельно, на самом деле вы не чувствуете, что пытаетесь, что и ожидается на SO. Есть руководство разработчика, с которым я уже связался, есть также справочная карточка Cypher, в которой есть раздел "Выражения списка", где все в сжатой форме.