プロパティのメタプロパティ

プロパティのメタプロパティを設定する方法。

メタプロパティは、プロパティが別のプロパティを格納することを可能にします。

手順

メタプロパティ
  • メタプロパティstart_dateおよびstart_dateのスキーマを作成して、プロパティcountryを持つauthor頂点ラベルを作成します。
    schema.propertyKey("name").Text().single().create()
    schema.propertyKey('start_date').Date().create()
    schema.propertyKey('end_date').Date().create()
    schema.propertyKey('country').Text().multiple().properties('start_date','end_date').create()
    schema.vertexLabel("author").properties("name", 'country').create()
    メタプロパティstart_dateおよびend_dateがpropertyKeyとして最初に作成されます。次に、properties()メソッドを使用して、メタプロパティがプロパティcountryに割り当てられます。
    ==>{item_mult=[cheddar cheese, cheese], name=[item1]}
    ==>{item_mult=[Greek yogurt, key lime yogurt, yogurt], name=[item2]}
  • 頂点を作成します。
    julia=graph.addVertex(label,'author', 'name', 'Julia Child')
    props=julia.property(list,'country','France')
    props.property('start_date', '1950-01-01')
    props.property('end_date', '1960-12-31')
    props2 = julia.property(list, 'country', 'USA')
    props2.property('start_date', '1961-01-01')
    props2.property('end_date', '1984-06-23')
    Julia Childのこの頂点にはプロパティcountryの値が2つあり、その一つひとつに2つのメタプロパティの値があります。
    代替的な頂点作成文は次のとおりです。
    g.addV('author').
      property('name', 'Emeril Lagasse').
      property('country', 'France', 'start_date', '1973-10-01', 'end_date','1973-09-09').
      property('country', 'USA, 'start_date', '1973-10-01', 'end_date', '2017-03-10')
    いずれのメソッドも受け入れられます。
  • 挿入されたプロパティを調べます。
    まず、作者が住んだことのある国のリストを見つけます。
    g.V().properties()
    ==>vp[name->Julia Child]
    ==>vp[country->France]
    ==>vp[country->USA]
    ==>vp[name->Emeril]
    ==>vp[country->France]
    ==>vp[country->USA]
    次に、リスト内の任意のcountryのメタプロパティをすべて表示します。
    g.V().properties().properties()
    ==>p[start_date->1950-01-01]
    ==>p[end_date->1960-12-31]
    ==>p[start_date->1961-01-01]
    ==>p[end_date->1984-06-23]
    ==>p[start_date->1970-04-05]
    ==>p[end_date->1973-09-09]
    ==>p[start_date->1973-02-02]
    ==>p[end_date->2017-03-01]
    hasValue()メソッドを追加して、指定された国の特定のメタプロパティ値を見つけます。
    g.V().properties('country').hasValue('France').properties()
    ==>p[start_date->1950-01-01]
    ==>p[end_date->1960-12-31]
    ==>p[start_date->1970-04-05]
    ==>p[end_date->1973-09-09]
    メタプロパティの値だけを検索します。
    g.V().properties('country').hasValue('France').properties().value()
    ==>1950-01-01
    ==>1960-12-31
    ==>1970-04-05
    ==>1973-09-09
    作者が各国に住み始めた日付を見つけます。
    g.V().as('author').
        properties('country').as('country').
        has('start_date').as('start_living_in').
    select('author','country','start_living_in').
        by('name').
        by(value).
        by('start_date')
    このクエリーでは、authorを使用して作者の氏名を格納した後で、各居住国countryのcountryプロパティを探索します。国ごとの開始日が追加的な探索によって検出され、started_living_inとして指定されます。最後に、値をマップする指定子を使用して、各フル・パス探索の3つの値がすべて選択され、結果が出力されます。このクエリーをDSE Studioに入力すると、次のような結果が生成されます。
    {
      "author": "Julia Child",
      "country": "France",
      "start_living_in": "1950-01-01"
    },
    {
      "author": "Julia Child",
      "country": "USA",
      "start_living_in": "1961-01-01"
    },
    {
      "author": "Emeril",
      "country": "France",
      "start_living_in": "1970-04-05"
    },
    {
      "author": "Emeril",
      "country": "USA",
      "start_living_in": "1973-02-02"
    }