Получить список различных ключей и количество узлов, которые имеют их - PullRequest
0 голосов
/ 09 февраля 2020

Используя запрос cypher, я могу получить список ключей для типа узла:

MATCH (n:Category) RETURN keys(n);

Результат:

 ╒═══════════════════════════════════════════════════════════════╕
 │"keys(n)"                                                      │
 ╞═══════════════════════════════════════════════════════════════╡
 │["CreatedDate","Category","_lastModified","_x","_y","_created"]│
 ├───────────────────────────────────────────────────────────────┤
 │["CreatedDate","_lastModified","_x","_y","_created","Category"]│
 └───────────────────────────────────────────────────────────────┘

В приведенном выше примере только два узла, и они имеют одинаковые ключи. Иногда есть много узлов, и у них не все одинаковые ключи.

Как я могу вернуть совокупность ключей и количество узлов, у которых есть этот ключ?

В в этом случае результат будет:

2 CreatedDate
2 Category
2 _lastModified
2 _x
2 _y
2 _created

1 Ответ

1 голос
/ 09 февраля 2020

Учитывая некоторые базовые c примеры данных:

MERGE (c1: Category { name: 'A', OnlyA: 'ValueOnlyA', Both: 'ValueBoth' })
MERGE (c2: Category { name: 'B', OnlyB: 'ValueOnlyB', Both: 'AnotherValueBoth' } )

Вы можете получить набор ключей свойств, видимых на любом из узлов в наборе, и количество раз, которое они были просмотрены:

MATCH (c: Category)
UNWIND keys(c) as k
RETURN k, count(k)
╒═══════╤══════════╕
│"k"    │"count(k)"│
╞═══════╪══════════╡
│"Both" │2         │
├───────┼──────────┤
│"name" │2         │
├───────┼──────────┤
│"OnlyA"│1         │
├───────┼──────────┤
│"OnlyB"│1         │
└───────┴──────────┘
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...