2
orientdb具有看似「非標準」特徵,能夠創建特定類別的頂點和邊。我可以在gremlin查詢中使用orientdb頂點/邊類嗎?
g.createVertex('class:person')
,但目前還不清楚我是否/如何我可以通過「標準」的小鬼該類資格嗎?
我看到到的語法的參考像這樣:
g.V('@class','person')...
here,但隨後有此語法踢腳指數提。
任何人都可以闡明這個話題?
orientdb具有看似「非標準」特徵,能夠創建特定類別的頂點和邊。我可以在gremlin查詢中使用orientdb頂點/邊類嗎?
g.createVertex('class:person')
,但目前還不清楚我是否/如何我可以通過「標準」的小鬼該類資格嗎?
我看到到的語法的參考像這樣:
g.V('@class','person')...
here,但隨後有此語法踢腳指數提。
任何人都可以闡明這個話題?
似乎Gremlin不採用Schema特性,也不是所有的圖形數據庫都支持模式,所以我不認爲你可以直接使用Gremlin來操縱OrientDB Schema。
無論如何,您可以使用createVertexType()
命令在OrientDB trhought Gremlin中創建類。
連接到數據庫ODB:
g = new OrientGraphNoTx('remote:localhost/GremlinDB')
==>orientgraphnotx[remote:localhost/GremlinDB]
創建頂點類Person
擴展V
:
g.createVertexType('Person','V')
==>Person
現在,如果你看看OrientDB工作室的模式,你會看到創建的新類:
EDITED
已經增加了兩個頂點
我們可以發現經過與name = 'John'
的人。
使用has()
:
g.V.has('@class','Person').has('name','John')
==>v(Person)[#12:0]
使用has()
+ T
操作:
g.V.has('@class','Person').has('name',T.eq,'John')
==>v(Person)[#12:0]
使用:
g.V.has('@class','Person').filter{it.name.contains('John')}
==>v(Person)[#12:0]
使用==
:
g.V.has('@class','Person').filter{it.name == 'John'}
==>v(Person)[#12:0]
希望它可以幫助
感謝@LucaS,是的,我已經使用'createVertexType'創建V的子類,但我的問題是圍繞現在在gremlin查詢中搜索該子類的慣用方式(例如,找到我所有人的名字是'盧卡斯')... –
嗨@tony_k,我錯過了查詢:)。我在編輯我的答案。 – LucaS
嗨@tony_k,我發佈了一些方法可以用來檢索你要找的結果。希望能幫助到你。 – LucaS