Cypherのノード(Node)の基本を理解する
Neo4jのCypherの文法、サンプルは豊富にあるのですが、文法がちょっとわかりづらいです。今回は、ノード(Node)とリレーションシップ(Relationship)のうちの、ノード(Node)を見ていきます。1つ1つ順を追って理解していけるように、徐々に膨らませていきます。
最小限のノード
これだけで作れます。
CREATE()
ID
が22
というだけの、ノードができます。
名前(プロパティ)をつけてみる
ノードを作るからには、データを入れたいことでしょう。()
の中に{名称:値}
を追加します。
CREATE({name:'Taro'})
name
にTaro
が設定されたノードができました。
カンマ区切りで複数設定できます。
CREATE({name:'Taro',age:33})
name
にTaro
、age
に33
が設定されたノードができました。
先ほど作ったTaroノードと共存しています。IDが異なるので、別のノードとして扱われています。
値に利用できる型
- 数字(10進、16進、8進)
- 文字列(
"
か'
で囲む) - ブール値 (
true
,false
,TRUE
,FALSE
) - リスト (
[
と]
で囲む)
参考:オンラインドキュメント 3.2.2.1. Expressions in general
君は何者だ(ラベル)
検索しやすくするために、「ラベル」でグルーピングできます。ラベルは、オブジェクト指向での「クラス」や「インターフェース」、Qiitaでの「タグ」のような感じのものです。(
の直後に:ラベル名
を追加します。
CREATE(:Person {name:'Taro',age:33})
Person
というラベルがついた、ノードができました。
ラベルも、:ラベル名
を繰り返して、複数つけることができます。
CREATE(:Person:Developer:Boss {name:'Taro',age:33})
Person
でDeveloper
でBoss
なノードができました。
作成したノードをすぐに使いたい(識別子)
これまでで、ノードに関しては一通り網羅しました。え、本にCREATE(n)
とかCREATE(n:Person)
とかって書いてあるんだけどn
は要らないのかって?
ぶっちゃけ、すぐに使わないのなら、n
は不要です。n
(やその他の記号)が必要なのは、その直後に、作成したノードを使って何かをする場合のみです。これは例えて言えば、オブジェクトは作るものの、作ったオブジェクトを参照する用がなければ変数に入れる必要がないのと一緒です。
Cypherの識別子は常に(
の直後に書きます。
Person n = new Person("Taro", 33);
System.out.println(n.name);
CREATE(n:Person {name:'Taro',age:33})
RETURN n.name;
作成されたノードにn
などの識別子の情報は一切持ちません。
識別子の命名規約
識別子はn
でなくてもいいです。アンダースコアと英数字の組み合わせなら何でも良いです。最初の文字はアルファベットにする必要があります。大文字と小文字は区別します。空白を含める時は、識別子全体を`で囲います。
Author And Source
この問題について(Cypherのノード(Node)の基本を理解する), 我々は、より多くの情報をここで見つけました https://qiita.com/makopo/items/d0585e4e52985fcaf66a著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .