Как сравнить только последний элемент из набора свойств из нескольких узлов в 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, в которой есть раздел "Выражения списка", где все в сжатой форме.

Другие вопросы по тегам