Я не могу найти, как вернуть метки node с помощью Cypher.
Кто-нибудь знает синтаксис этой операции?
Ответ 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 вернуть все доступные метки в базу данных. Использование: