Neo4j группирует по файлу хэш и связывает имена файлов, связанные с каждым хэшем - PullRequest
0 голосов
/ 14 октября 2019

У меня есть узел (FileName), который имеет 2 свойства: name и FileHash.

f.name             f.FileHash
"image001.png"     "23a5s6d"
"image002.png"     "56e41s3"
"image003.png"     "6a5s21s"
"image003.png"     "23a5s6d"
"image003.png"     "56e41s3"
"image004.png"     "56e41s3"
"image004.png"     "32a1321"

Я хотел бы видеть различные вложения файлов, которые имеют одинаковый хэш файла. Было бы странно, если бы файлы имели одинаковый хэш, но разные имена.

Мой желаемый результат будет примерно таким:

enter image description here

Я пытаюсь:

MATCH (f:FileName)
WITH f.FileHash as h, COLLECT(f.name) as n
WHERE not h = 'false' AND not n = 'false'
UNWIND n as x
MATCH (h)--(x)
RETURN h,x

но яполучаю ошибку:

Neo.DatabaseError.Statement.ExecutionFailed: Expected to find a node at 'h' but found String("23a5s6d") instead

1 Ответ

1 голос
/ 14 октября 2019

Вы можете использовать функции агрегирования, COLLECT в этом случае

MATCH ....
RETURN f.FileHash,COLLECT(f.name)

даст вам следующий результат:

"23a5s6d",["image001.png","image003.png"]
"56e41s3",["image002.png","image003.png","image004.png"]
"6a5s21s",["image003.png"]
"32a1321",["image004.png"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...