web-dev-qa-db-ja.com

neo4j Cypherですべてのノードラベルを返す方法は?

Cypherでノードラベルを返す方法が見つかりません。

誰もがこの操作の構文を知っていますか?

47
Sovos

ノードのすべてのラベルを返すことができる関数labels(node)があります。

50
Lisa Li

すべての異なるノードラベルを取得するには:

MATCH (n) RETURN distinct labels(n)

各ラベルのノード数を取得するには:

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

すべての個々のラベル(組み合わせではなく)が必要な場合は、いつでも回答を展開できます。

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

Neo4j 3.0は、データベース内の利用可能なすべてのラベルを返すdb.labels() witchプロシージャを導入しました。つかいます:

call db.labels();
17
Bruno Peres
 START n=node(*) RETURN labels(n)
5

Java API)を使用している場合、次のようにデータベース内のすべてのLabelsの反復子をすばやく取得できます。

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

指定ノードのラベルを取得する場合は、labels(node);を使用します。 neo4jのすべてのノードラベルのみを取得する場合は、代わりにこの関数を使用します:_call db.labels;_、このクエリ:MATCH n RETURN DISTINCT LABELS(n)は使用しないでください。完全なテーブルスキャンを実行しますが、非常に遅いです。

2
arganzheng