Neo4JCypherクエリ-Null関係

ayan_2587

私はNeo4Jにかなり慣れておらず、Cypherクエリに問題があります。

私はNeo4Jjavaを介して暗号クエリを記述し、Neo4Jデータベースは次のように設計されています。

id、name、age、email、gender、nodecityなどの属性を持つユーザーノードがあります。すべてのユーザーは、関係(ライブ)によって都市ノード(属性ID、名前)に関連付けられます。ただし、ユーザーが都市に関連付けられていない場合があります。

これで、クエリのシナリオは、ユーザーとユーザーが住んでいる都市のすべての詳細を1つのクエリで取得したいというものです。

 match p, c, p-[:lives]->c where p.type = 'com.Person' and c.type='com.City' and p.id = 12345 return p.name, p.age, p.email, p.gender, c.name;

ユーザーが都市に関連付けられている場合、クエリは適切に機能しますが、ユーザーが都市に関連付けられていない場合は失敗します。

両方のシナリオを処理できるクエリを手伝っていただけませんか。

サイバーサム
  1. あなたのMATCHandWHERE句は、実際には、一致するすべてのものがp都市に関連付けられている必要があることを要求していますOPTIONAL MATCHオプションの一致にはこのを使用する必要があります。
  2. ちなみに、「MATCH p、c、p-[:lives]-> c」の「p、c」は不要で非効率的です。

希望する結果を得るには、次のc.nameことを試してください(null関連する都市がない場合になります)。

MATCH (p {type: "Person", id: 12345})
OPTIONAL MATCH (p)-[:lives]->(c {type: "City"})
RETURN p.name, p.age, p.email, p.gender, c.name;

また、私は強く標識の使用をお勧めしますPersonし、Cityあなたのためにpc(代わりのノードtypeプロパティ)。これにより、クエリがはるかに効率的かつ明確になります。ノードにこの変更を加えた場合、より高速なクエリは次のようになります。

MATCH (p:Person {id: 12345})
OPTIONAL MATCH (p)-[:lives]->(c:City)
RETURN p.name, p.age, p.email, p.gender, c.name;

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

多対多の関係に対するNeo4jCypherクエリ

分類Dev

nullまたはnull以外の値を持つNeo4jCypherクエリ

分類Dev

開始-終了条件に基づいて単一の関係を持つノードのパスを一覧表示するNeo4jCypherクエリ

分類Dev

Neo4jCypherクエリエラー

分類Dev

Neo4jCypher再帰クエリ

分類Dev

neo4jCypherプロパティを使用して関係を作成する

分類Dev

Neo4jCypherクエリと複合オブジェクト

分類Dev

neo4jcypherクエリにパラメータを渡す

分類Dev

このNeo4JCypherクエリを最適化する

分類Dev

Springデータneo4jcypherクエリ

分類Dev

Neo4jCypherクエリと複雑な並べ替え

分類Dev

C#でNeo4JCypherクエリを作成する

分類Dev

Neo4jCypher-関係条件に一致するかnull

分類Dev

Neo4jCypherトラバーサル-複数の関係タイプでパスを検索

分類Dev

Neo4jCypherパフォーマンスクエリの最適化

分類Dev

そして、neo4jcypherクエリの条件が機能しません

分類Dev

Neo4jCypherクエリ言語のさまざまなデータ型

分類Dev

Neo4jCypherクエリが際限なく実行されています

分類Dev

Neo4jCypherクエリ-正規表現を使用したクエリプロパティ配列

分類Dev

Neo4jCypherクエリとコレクション内の要素のインデックス

分類Dev

複雑なネストされたQueryResultを使用したNeo4jCypherクエリSDN4

分類Dev

関係がnullのクエリ要素

分類Dev

長いが(ほぼ)一意のパスのNeo4JCypherクエリを探しています

分類Dev

Neo4jCypherクエリでFOREACHの後にノードを返すことができません

分類Dev

このNeo4JCypher 2クエリを表現するためのより良い方法は何ですか?

分類Dev

C#:Where句にパスを含むneo4jCypherクエリを実行しています

分類Dev

C#:Where句にパスを含むneo4jCypherクエリを実行しています

分類Dev

メソッドコードをNeo4jCypherクエリに移動します

分類Dev

Neo4jCypherクエリを使用したグローバル一致正規表現

Related 関連記事

  1. 1

    多対多の関係に対するNeo4jCypherクエリ

  2. 2

    nullまたはnull以外の値を持つNeo4jCypherクエリ

  3. 3

    開始-終了条件に基づいて単一の関係を持つノードのパスを一覧表示するNeo4jCypherクエリ

  4. 4

    Neo4jCypherクエリエラー

  5. 5

    Neo4jCypher再帰クエリ

  6. 6

    neo4jCypherプロパティを使用して関係を作成する

  7. 7

    Neo4jCypherクエリと複合オブジェクト

  8. 8

    neo4jcypherクエリにパラメータを渡す

  9. 9

    このNeo4JCypherクエリを最適化する

  10. 10

    Springデータneo4jcypherクエリ

  11. 11

    Neo4jCypherクエリと複雑な並べ替え

  12. 12

    C#でNeo4JCypherクエリを作成する

  13. 13

    Neo4jCypher-関係条件に一致するかnull

  14. 14

    Neo4jCypherトラバーサル-複数の関係タイプでパスを検索

  15. 15

    Neo4jCypherパフォーマンスクエリの最適化

  16. 16

    そして、neo4jcypherクエリの条件が機能しません

  17. 17

    Neo4jCypherクエリ言語のさまざまなデータ型

  18. 18

    Neo4jCypherクエリが際限なく実行されています

  19. 19

    Neo4jCypherクエリ-正規表現を使用したクエリプロパティ配列

  20. 20

    Neo4jCypherクエリとコレクション内の要素のインデックス

  21. 21

    複雑なネストされたQueryResultを使用したNeo4jCypherクエリSDN4

  22. 22

    関係がnullのクエリ要素

  23. 23

    長いが(ほぼ)一意のパスのNeo4JCypherクエリを探しています

  24. 24

    Neo4jCypherクエリでFOREACHの後にノードを返すことができません

  25. 25

    このNeo4JCypher 2クエリを表現するためのより良い方法は何ですか?

  26. 26

    C#:Where句にパスを含むneo4jCypherクエリを実行しています

  27. 27

    C#:Where句にパスを含むneo4jCypherクエリを実行しています

  28. 28

    メソッドコードをNeo4jCypherクエリに移動します

  29. 29

    Neo4jCypherクエリを使用したグローバル一致正規表現

ホットタグ

アーカイブ