neo4j cypherのノードラベルで結果をフィルタリングする方法は?

dfd0226

建物とバス停の間の接続をマップするグラフデータベースがあります。グラフには、道路や交差点などの他の接続部分が含まれています(多くのノードタイプの中で)。

私が理解しようとしているのは、特定のノードタイプのみを返すようにパスをフィルタリングする方法です。私は現在苦労している2つの関連する質問があります。

質問1:パスに沿ってノードのラベルを返すにはどうすればよいですか?

論理的な最初のステップは、パスに沿って発生するノードのタイプを判別することのようです。

私は以下を試しました:

MATCH p=(a:Building)­-[:CONNECTED_TO*..5]­-(b:Bus) 
WITH nodes(p) AS nodes 
RETURN DISTINCT labels(nodes);

ただし、labels()がコレクションではなくノード型のデータを予期しているという型例外エラーが発生します。最終的にパスをフィルタリングできるように、パス上にあるノードのタイプを動的に知りたいのですが。

質問2:最初のステップで特定したラベルに一致するパス内のノードのサブセットを返すにはどうすればよいですか?

言ってやる私はその間ことを発見(a:Building)し、(d1:Bus)そして(d2:Bus)、私が見つけることを期待することができ(:Intersection)、ノードと(:Street)ノードを。

これは私のグラフの単純化されたモデルです:

(a:Building)­­--(:Street)­--­(:Street)--­­(b1:Bus) 
             \­­(:Street)--­­(:Intersection)­­--(:Street)--­­(b2:Bus)

ノードMATCH間のすべての可能なパスを探すステートメントを作成しましたストリートノードを選択的に返すために、フィルターの次に何をする必要がありますか?(:Building)(:Bus)

MATCH p=(a:Building)-[r:CONNECTED_TO*]-(b:Bus)
  // Insert logic to only return (:Street) nodes from p

これに関するガイダンスをいただければ幸いです。

サイバーサム
  1. 一致するパスに沿って個別のラベルを取得するには:

    MATCH p=(a:Building)-[:CONNECTED_TO*..5]-(b:Bus)
    WITH NODES(p) AS nodes
    UNWIND nodes AS n
    WITH LABELS(n) AS ls
    UNWIND ls AS label
    RETURN DISTINCT label;
    
  2. Streetラベルのあるノードを返します。

    MATCH p=(a:Building)-[r:CONNECTED_TO*]-(b:Bus)
    WITH NODES(p) AS nodes
    UNWIND nodes AS n
    WITH n
    WHERE 'Street' IN LABELS(n)
    RETURN n;
    

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Neo4j Cypher:結果を度でフィルタリング

分類Dev

Neo4jクエリでのノードのフィルタリング

分類Dev

Neo4j Cypherで協調フィルタリングを高速化する方法は?

分類Dev

IF ... ELSE with Cypher Neo4J

分類Dev

neo4j Cypher IF THEN ELSE

分類Dev

Count and operations in Neo4j cypher

分類Dev

neo4jの暗号

分類Dev

Neo4j HTTPSのみ?

分類Dev

neo4jの自然順

分類Dev

Neo4j cypherクエリ-特定のラベルデータを取得する方法は?

分類Dev

Neo4j:「NOTCONTAINS」はNeo4jに存在しますか?

分類Dev

大規模なグラフでの重みによる Neo4j Cypher フィルタリング関係

分類Dev

Neo4jリスト内のneo4jでノードの関係を作成する方法は?

分類Dev

neo4j:ノードとリレーションのラベル付きのパスを返す方法は?

分類Dev

neo4j cypher:クエリ結果からのノードの「スタッキング」

分類Dev

cypher neo4j - ノードのグループを集める

分類Dev

Neo4j結果からノードを除外する

分類Dev

neo4j cypher、収集時にノードではなくフィールドを返す

分類Dev

Neo4j:Cypher:パターンごとにラベルを削除する方法は?

分類Dev

Neo4jノードの作成速度

分類Dev

公式neo4j goドライバーで結果を解析する方法は?

分類Dev

Neo4j Cypherで個別のノードペアを返す方法は?

分類Dev

Neo4J / Cypherクエリの支援

分類Dev

Neo4jラベルとノードプロパティ

分類Dev

Neo4jのノードのラベルの制限

分類Dev

neo4jでラベルレスノードを削除する

分類Dev

Neo4J Cypherに固有のフィルターはありますか?

分類Dev

ノードラベルとプロパティタイプでフィルタリングするneo4jグラフのサブセットを抽出します

分類Dev

Neo4JとCypherクエリ

Related 関連記事

  1. 1

    Neo4j Cypher:結果を度でフィルタリング

  2. 2

    Neo4jクエリでのノードのフィルタリング

  3. 3

    Neo4j Cypherで協調フィルタリングを高速化する方法は?

  4. 4

    IF ... ELSE with Cypher Neo4J

  5. 5

    neo4j Cypher IF THEN ELSE

  6. 6

    Count and operations in Neo4j cypher

  7. 7

    neo4jの暗号

  8. 8

    Neo4j HTTPSのみ?

  9. 9

    neo4jの自然順

  10. 10

    Neo4j cypherクエリ-特定のラベルデータを取得する方法は?

  11. 11

    Neo4j:「NOTCONTAINS」はNeo4jに存在しますか?

  12. 12

    大規模なグラフでの重みによる Neo4j Cypher フィルタリング関係

  13. 13

    Neo4jリスト内のneo4jでノードの関係を作成する方法は?

  14. 14

    neo4j:ノードとリレーションのラベル付きのパスを返す方法は?

  15. 15

    neo4j cypher:クエリ結果からのノードの「スタッキング」

  16. 16

    cypher neo4j - ノードのグループを集める

  17. 17

    Neo4j結果からノードを除外する

  18. 18

    neo4j cypher、収集時にノードではなくフィールドを返す

  19. 19

    Neo4j:Cypher:パターンごとにラベルを削除する方法は?

  20. 20

    Neo4jノードの作成速度

  21. 21

    公式neo4j goドライバーで結果を解析する方法は?

  22. 22

    Neo4j Cypherで個別のノードペアを返す方法は?

  23. 23

    Neo4J / Cypherクエリの支援

  24. 24

    Neo4jラベルとノードプロパティ

  25. 25

    Neo4jのノードのラベルの制限

  26. 26

    neo4jでラベルレスノードを削除する

  27. 27

    Neo4J Cypherに固有のフィルターはありますか?

  28. 28

    ノードラベルとプロパティタイプでフィルタリングするneo4jグラフのサブセットを抽出します

  29. 29

    Neo4JとCypherクエリ

ホットタグ

アーカイブ