Neo4j / Cypher:ノード間の関係のいずれかが特定の基準を満たしている場合にノードを返します

BradStell

2つのノードがあります

  1. ロードマップ:(:ロードマップ)
  2. プログラム:(:プログラム)

彼らは関係とつながっています (:Roadmap)<-[:IS_SHOWN_ON_ROADMAP]-(:Program)

プログラムがロードマップから削除されるたびに、endDateプロパティがリレーションシップに設定されます。同じプログラムが同じロードマップに追加された場合、endDateプロパティなしで新しい関係が追加されます。(このようにして、過去にさかのぼって過去の状況を確認できます)。

したがって[:IS_SHOWN_ON_ROADMAP]、任意の2つのノード(:Program)(:Roadmap)ノードの間に任意の数の関係が存在する可能性がありますnの関係がある場合、nまたはn-1のいずれかに終了日があります。プログラムが現在ロードマップにない場合はすべて終了日があり、現在ロードマップにある場合はそのうちの1つに終了日がありません。

だから私の質問:暗号で「ロードマップで現在アクティブになっていないすべてのプログラムを表示してください」という質問をするにはどうすればよいですか?

AKA、endDatenullとの関係が少なくとも1つある場合は、それを返さないでください。
または:すべての関係にendDateがあるプログラムのみを返します

私が持っているクエリ(それは完全には機能しません)は

MATCH (rm:Roadmap)<-[r:IS_SHOWN_ON_ROADMAP]-(p:Program)
WHERE r.endDate IS NOT NULL
RETURN p

このクエリは、過去に削除された場合でも、ロードマップでアクティブなプログラムを返します。

例:2つの関係がある場合、1つはendDate(削除されたため)あり、もう1つはendDate(現在ロードマップに関連付けられているため)ありません

各プログラムとロードマップの間のすべての関係をループし、関係の少なくとも1つに終了日がない場合はそのプログラムを返さないように、暗号で方法を理解する必要があります。

ブルーノペレス

ALL関数を使用してみることができます。

MATCH (rm:Roadmap)<-[r:IS_SHOWN_ON_ROADMAP]-(p:Program)
WITH p, collect(r) as rs WHERE ALL(rel in rs WHERE rel.endDate IS NOT NULL)
RETURN p

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Neo4j/Cypher - 別のノードが特定の条件を満たした場合にノードを設定する

分類Dev

2つのノード間の関係が存在する場合は更新し、存在しない場合は新しい関係を作成しますNEO4j

分類Dev

特定の関係を持たないノードの検索(Cypher / neo4j)

分類Dev

ノード間に直接の関係がない場合は、Neo4jのcsvfileから関係にプロパティを追加します

分類Dev

Neo4j:特定のノードに接続されているノードと関係をリーフノードまで削除します

分類Dev

Neo4j / Cypher:特定の条件が満たされた場合に関係を作成します

分類Dev

Neo4jで特定の関係を持たないすべてのノードを取得します

分類Dev

ノード間の関係を表示するNeo4j

分類Dev

neo4jでノード間の関係を作成する

分類Dev

neo4j cypherは既存のノードを更新するか、新しいノードを作成します

分類Dev

Neo4j(cypher):特定の関係を持つすべてのノードを見つけるにはどうすればよいですか?

分類Dev

Neo4j:既存のノードに関係を追加する

分類Dev

Cypher(Neo4j)-ノードからの1つの関係が検索パスに関係なく条件を満たす限り、すべての関係を検索しますか?

分類Dev

neo4jにノードが存在しない場合にのみノードを作成するにはどうすればよいですか?

分類Dev

neo4j cypher、ノードを検索し、IDによる関係です

分類Dev

Neo4jでノードとその関係(存在する場合)を削除します

分類Dev

Neo4Jプロパティが存在する場合はノードをマージし、関係のある別のノードを作成します

分類Dev

neo4jの親関係に基づいてノードを検索する

分類Dev

2つ以上の関係(AND)関係を満たすNeo4jノードに一致する表現

分類Dev

Neo4j:特定の条件を満たすノードのグループに基づいて新しいノードを作成する方法はありますか

分類Dev

2つの特定のノード間の関係の数を数える-Neo4j / Cypher

分類Dev

neo4jの特定のトップノードに接続されているすべてのノードと関係を検索する方法

分類Dev

Cypherを使用してNeo4jの2つのノード間に同じタイプの複数の関係を作成する

分類Dev

Neo4j / Cypher-指定された親にのみリンクするノードを検索します

分類Dev

Neo4j、ノードのセット間のすべての関係を取得します

分類Dev

Neo4j で特定のノードに接続されていないノードを取得する

分類Dev

Neo4J:ノードの繰り返しを避ける

分類Dev

Neo4J:ノードの繰り返しを避ける

分類Dev

Neo4j Cypherは、指定されたプロパティとの関係に達するまでノードを取得します

Related 関連記事

  1. 1

    Neo4j/Cypher - 別のノードが特定の条件を満たした場合にノードを設定する

  2. 2

    2つのノード間の関係が存在する場合は更新し、存在しない場合は新しい関係を作成しますNEO4j

  3. 3

    特定の関係を持たないノードの検索(Cypher / neo4j)

  4. 4

    ノード間に直接の関係がない場合は、Neo4jのcsvfileから関係にプロパティを追加します

  5. 5

    Neo4j:特定のノードに接続されているノードと関係をリーフノードまで削除します

  6. 6

    Neo4j / Cypher:特定の条件が満たされた場合に関係を作成します

  7. 7

    Neo4jで特定の関係を持たないすべてのノードを取得します

  8. 8

    ノード間の関係を表示するNeo4j

  9. 9

    neo4jでノード間の関係を作成する

  10. 10

    neo4j cypherは既存のノードを更新するか、新しいノードを作成します

  11. 11

    Neo4j(cypher):特定の関係を持つすべてのノードを見つけるにはどうすればよいですか?

  12. 12

    Neo4j:既存のノードに関係を追加する

  13. 13

    Cypher(Neo4j)-ノードからの1つの関係が検索パスに関係なく条件を満たす限り、すべての関係を検索しますか?

  14. 14

    neo4jにノードが存在しない場合にのみノードを作成するにはどうすればよいですか?

  15. 15

    neo4j cypher、ノードを検索し、IDによる関係です

  16. 16

    Neo4jでノードとその関係(存在する場合)を削除します

  17. 17

    Neo4Jプロパティが存在する場合はノードをマージし、関係のある別のノードを作成します

  18. 18

    neo4jの親関係に基づいてノードを検索する

  19. 19

    2つ以上の関係(AND)関係を満たすNeo4jノードに一致する表現

  20. 20

    Neo4j:特定の条件を満たすノードのグループに基づいて新しいノードを作成する方法はありますか

  21. 21

    2つの特定のノード間の関係の数を数える-Neo4j / Cypher

  22. 22

    neo4jの特定のトップノードに接続されているすべてのノードと関係を検索する方法

  23. 23

    Cypherを使用してNeo4jの2つのノード間に同じタイプの複数の関係を作成する

  24. 24

    Neo4j / Cypher-指定された親にのみリンクするノードを検索します

  25. 25

    Neo4j、ノードのセット間のすべての関係を取得します

  26. 26

    Neo4j で特定のノードに接続されていないノードを取得する

  27. 27

    Neo4J:ノードの繰り返しを避ける

  28. 28

    Neo4J:ノードの繰り返しを避ける

  29. 29

    Neo4j Cypherは、指定されたプロパティとの関係に達するまでノードを取得します

ホットタグ

アーカイブ