Neo4j: Найти узлы с именем свойства, содержащим строку (в имени свойства, а не в значении свойства) - PullRequest
0 голосов
/ 23 января 2020

Есть ли способ найти все узлы со свойствами, которые имеют определенную строку?
Например, здесь с "ID":

  match (n) where exists( n[".*"+"ID"]) return n

(это не работает).

Спасибо!

1 Ответ

2 голосов
/ 23 января 2020

Это даст вам только ключи.

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") RETURN n, KEYS(n) AS myKeys

Это даст вам только значения.

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
RETURN n, [x IN KEYS(n) WHERE x =~".*ID" | n[x]] AS myValues

Если у вас есть апо c, это даст вам ключи и значения.

MATCH (n) WHERE ANY(x IN KEYS(n) WHERE x =~".*ID") 
WITH n, [x IN KEYS(n) WHERE x =~".*ID" | x] AS myKeys
RETURN id(n) AS nodeId, apoc.map.submap(n, myKeys) as submap
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...