如果你想單獨列
MATCH
{as:user} -Performs-> {as:process} -Uses->
{class:Application, as:app, where:(applicationName = ?)} -RunsOn->
{class:Server, as:server, where:(osType = ?)} -IsConnected-> {as:network}
RETURN user.name, process.id, app.name, server.url, server.name, network.name
如果你只需要所涉及的元素的RID:
MATCH
{as:user} -Performs-> {as:process} -Uses->
{class:Application, as:app, where:(applicationName = ?)} -RunsOn->
{class:Server, as:server, where:(osType = ?)} -IsConnected-> {as:network}
RETURN user, process, app, server, network
如果你也想在行中的所有細節:
SELECT user.* as user_, process.* as process_, app.* as app_, server.* as server_, network.* as network_ FROM (
MATCH
{as:user} -Performs-> {as:process} -Uses->
{class:Application, as:app, where:(applicationName = ?)} -RunsOn->
{class:Server, as:server, where:(osType = ?)} -IsConnected-> {as:network}
RETURN user, process, app, server, network
)
「as xxx_」將爲屬性添加前綴,這對於避免衝突很有用,例如。如果你有user.name和server.name,這樣你將擁有「user_name」和「server_name」
如果你不需要所有的模式,但你只需要單個記錄是結果的一部分:
MATCH
{as:user} -Performs-> {as:process} -Uses->
{class:Application, as:app, where:(applicationName = ?)} -RunsOn->
{class:Server, as:server, where:(osType = ?)} -IsConnected-> {as:network}
RETURN $elements
如果有連接到相同的節點的多條路徑,則可以使用逗號分開的圖案,使用別名,例如接合。
MATCH
{as:user} -Performs-> {as:process} -Uses->
{class:Application, as:app, where:(applicationName = ?)} -RunsOn->
{class:Server, as:server, where:(osType = ?)} -IsConnected-> {as:network},
{as:server} -IsMountedOn-> {as:storage}
RETURN $elements
如果一個或多個(終端)連接丟失,您可以將其定義爲可選,例如。如果存儲可能會丟失:
MATCH
{as:user} -Performs-> {as:process} -Uses->
{class:Application, as:app, where:(applicationName = ?)} -RunsOn->
{class:Server, as:server, where:(osType = ?)} -IsConnected-> {as:network},
{as:server} -IsMountedOn-> {as:storage, optional:true}
RETURN $elements
這隻適用於終端節點,即。只有一個連接的節點。
完全參考這裏:http://orientdb.com/docs/2.2.x/SQL-Match.html
感謝您的快速response.Somewhere我尋找相同的結果下來line.One小疑問,如果我們有一個以上的依賴頂點那麼我們將如何把它放到同像服務器IsMountedOn存儲和服務器IsConnectedTo網絡查詢。 –
在原始答案中增加了一個示例 –
但我無法理解如何爲同一個服務器定義另一個3關係,如果正在執行{as:Server} -IsMountedOn - > {as:Storage} -IsConnectedTo - > {as :網絡}但它不起作用,因爲此網絡與服務器直接相關。 –