2016-04-13 8 views
2

orientdbには、特定のクラスの頂点とエッジを作成できるように見える「標準ではない」機能があります。gremlinクエリでorientdb頂点/エッジクラスを修飾できますか?

g.createVertex('class:person')

が、私は「標準」グレムリンを経由して、そのクラスに修飾することができますか/どうかは私には不明ですか?

私はそうのような構文を参照する見てきました:

g.V('@class','person')...

hereを、その後のインデックスをかすめこの構文の言及がありました。

誰でもこのトピックを公開できますか?

答えて

3

Gremlinはスキーマ機能を採用しておらず、グラフデータベースのすべてがスキーマをサポートしているわけではないので、Gremlinで直接OrientDBスキーマを操作できるとは思いません。

とにかく、createVertexType()コマンドを使用して、OrientDB trhought Gremlin内でクラスを作成できます。 ODBデータベースへ

  1. 接続:

    g = new OrientGraphNoTx('remote:localhost/GremlinDB') 
    
    ==>orientgraphnotx[remote:localhost/GremlinDB] 
    
  2. Vを拡張頂点クラスPersonを作成します。

    g.createVertexType('Person','V') 
    
    ==>Person 
    

、あなたの場合EDITEDは、私たちが見つけることができる2つの頂点

enter image description here

を追加した後

enter image description here

:あなたが作成した新しいクラスを参照してくださいよ、OrientDB Studioでスキーマを見てname = 'John'の人has() + T演算子使用

g.V.has('@class','Person').has('name','John') 

==>v(Person)[#12:0] 
  • :を使用

    g.V.has('@class','Person').has('name',T.eq,'John') 
    
    ==>v(Person)[#12:0] 
    
  • :をhas()を使用

    1. ==を使用して

      g.V.has('@class','Person').filter{it.name.contains('John')} 
      
      ==>v(Person)[#12:0] 
      
    2. g.V.has('@class','Person').filter{it.name == 'John'} 
      
      ==>v(Person)[#12:0] 
      

    はそれが

  • +0

    おかげで@LucaS、はい、私はすでに、Vのサブクラスを作成するために 'createVertexType'を使用していたホープしかし、私の質問は、gremlinクエリでそのサブクラスを検索するという慣用的な方法です(例:私を見つけるすべての人は 'ルーカス')... –

    +0

    こんにちは@tony_k、私は質問を逃した:)。私は自分の答えを編集しています。 – LucaS

    +0

    こんにちは@tony_k、私はあなたが探している結果を取得するために使用できるいくつかの方法を投稿しました。それが役に立てば幸い。 – LucaS

    関連する問題