neo4j: CYPHER запрашивает все свойства узла - PullRequest
0 голосов
/ 05 июня 2018

Мы оцениваем Neo4J для будущих проектов.В данный момент просто экспериментирую с обучением Cypher и его возможностями.Но одна вещь, которую я считаю очень простой, до сих пор ускользает от меня.Я хочу иметь возможность видеть все свойства и их значения для любого данного узла.В SQL это было бы что-то вроде:

select * from TableX where ID = 12345;

Я просмотрел последние документы Neo4J и многочисленные поиски в Google, но пока я выхожу пустым.Я нашел функцию keys(), которая будет возвращать имена свойств в списке строк, но в лучшем случае это будет незначительно полезно.То, что я хочу, это запрос, который будет возвращать имена реквизитов и соответствующие значения, такие как:

name     :  "Lebron"
city     :  "Cleveland"
college  :  "St. Vincent–St. Mary High School"

1 Ответ

0 голосов
/ 05 июня 2018

Возможно, вы захотите перечитать документы Neo4j.

Возвращение самого узла будет включать в себя карту свойств для узла, которая, как правило, позволяет получить все свойства (ключи и значения) для узла.

MATCH (n)
WHERE id(n) = 12345
RETURN n

Если вы явно хотите получить свойства, но без метаданных, связанных с самим узлом, возвращение properties(n) (при условии, что n является переменной узла) вернет свойства узла.

MATCH (n)
WHERE id(n) = 12345
RETURN properties(n) as props

Что касается работы столбцов (переменных), они всегда явные, поэтому у вас нет способа динамически получить столбцы, соответствующие свойствам узла.Вместо этого вам нужно будет использовать подходы, описанные выше, где переменная соответствует либо узлу (где вы можете получить карту свойств через структуру), либо карте свойств.

Основное отличие этого подхода от select * в SQL заключается в том, что Neo4j не имеет схемы таблиц, поэтому вы можете использовать любые свойства, которые вы хотите, на узлах одного типа, и они могут различаться между узлами одного типа, поэтому нет общей структуры для ссылки, которая обеспечитсвойства для узла данной метки (для этого необходимо отсканировать все узлы этой метки и накопить различные свойства).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...