Cypherでノードラベルを返す方法が見つかりません。
誰もがこの操作の構文を知っていますか?
ノードのすべてのラベルを返すことができる関数labels(node)があります。
すべての異なるノードラベルを取得するには:
MATCH (n) RETURN distinct labels(n)
各ラベルのノード数を取得するには:
MATCH (n) RETURN distinct labels(n), count(*)
すべての個々のラベル(組み合わせではなく)が必要な場合は、いつでも回答を展開できます。
MATCH (n)
WITH DISTINCT labels(n) AS labels
UNWIND labels AS label
RETURN DISTINCT label
ORDER BY label
Neo4j 3.0は、データベース内の利用可能なすべてのラベルを返すdb.labels()
witchプロシージャを導入しました。つかいます:
call db.labels();
START n=node(*) RETURN labels(n)
Java API)を使用している場合、次のようにデータベース内のすべてのLabel
sの反復子をすばやく取得できます。
GraphDatabaseService db = (new GraphDatabaseFactory()).newEmbeddedDatabase(pathToDatabase);
ResourceIterable<Label> labs = GlobalGraphOperations.at(db).getAllLabels();
指定ノードのラベルを取得する場合は、labels(node)
;を使用します。 neo4jのすべてのノードラベルのみを取得する場合は、代わりにこの関数を使用します:_call db.labels;
_、このクエリ:MATCH n RETURN DISTINCT LABELS(n)
は使用しないでください。完全なテーブルスキャンを実行しますが、非常に遅いです。