Подтвердить что ты не робот

Neo4j как вернуть все node метки с Cypher?

Я не могу найти, как вернуть метки node с помощью Cypher.

Кто-нибудь знает синтаксис этой операции?

4b9b3361

Ответ 1

Есть метки функций (node), которые могут возвращать все метки для node.

Ответ 2

Чтобы получить все ярлыки node:

MATCH (n) RETURN distinct labels(n)

Чтобы получить счетчик node для каждой метки:

MATCH (n) RETURN distinct labels(n), count(*)

Ответ 3

Если вам нужны все отдельные ярлыки (а не комбинации), вы всегда можете расширить ответы:

MATCH (n)
WITH DISTINCT labels(n) AS labels
UNWIND labels AS label
RETURN DISTINCT label
ORDER BY label

Ответ 4

 START n=node(*) RETURN labels(n)

Ответ 5

Если вы используете Java API, вы можете быстро получить итератор всего Label в базе данных следующим образом:

GraphDatabaseService db = (new GraphDatabaseFactory()).newEmbeddedDatabase(pathToDatabase);
ResourceIterable<Label> labs = GlobalGraphOperations.at(db).getAllLabels();

Ответ 6

Если вы хотите получить метки для указания node, используйте labels(node); Если вы хотите получить все метки node в neo4j, вместо этого используйте эту функцию: call db.labels;, никогда не используйте этот запрос: MATCH n RETURN DISTINCT LABELS(n). Он выполнит полное сканирование таблицы, которое очень медленно.

Ответ 7

Neo4j 3.0 внедрил процедуру db.labels() witch вернуть все доступные метки в базу данных. Использование:

call db.labels();