2016-04-13 137 views
2

orientdb具有看似「非標準」特徵,能夠創建特定類別的頂點和邊。我可以在gremlin查詢中使用orientdb頂點/邊類嗎?

g.createVertex('class:person')

,但目前還不清楚我是否/如何我可以通過「標準」的小鬼該類資格嗎?

我看到到的語法的參考像這樣:

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

here,但隨後有此語法踢腳指數提。

任何人都可以闡明這個話題?

回答

3

似乎Gremlin不採用Schema特性,也不是所有的圖形數據庫都支持模式,所以我不認爲你可以直接使用Gremlin來操縱OrientDB Schema。

無論如何,您可以使用createVertexType()命令在OrientDB trhought Gremlin中創建類。

  1. 連接到數據庫ODB:

    g = new OrientGraphNoTx('remote:localhost/GremlinDB') 
    
    ==>orientgraphnotx[remote:localhost/GremlinDB] 
    
  2. 創建頂點類Person擴展V

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

現在,如果你看看OrientDB工作室的模式,你會看到創建的新類:

enter image description here

EDITED

已經增加了兩個頂點

enter image description here

我們可以發現經過與name = 'John'的人。

  1. 使用has()

    g.V.has('@class','Person').has('name','John') 
    
    ==>v(Person)[#12:0] 
    
  2. 使用has() + T操作:

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

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

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

希望它可以幫助

+0

感謝@LucaS,是的,我已經使用'createVertexType'創建V的子類,但我的問題是圍繞現在在gremlin查詢中搜索該子類的慣用方式(例如,找到我所有人的名字是'盧卡斯')... –

+0

嗨@tony_k,我錯過了查詢:)。我在編輯我的答案。 – LucaS

+0

嗨@tony_k,我發佈了一些方法可以用來檢索你要找的結果。希望能幫助到你。 – LucaS

相關問題