在 ArangoDB 中,子圖(Subgraph)是一種特殊類型的圖形結構,它允許您將多個圖集合組合成一個更大的圖形結構
首先,您需要創(chuàng)建一個新的圖集合來存儲子圖數(shù)據(jù)。您可以使用 db.createCollection()
方法創(chuàng)建一個新的圖集合。例如,創(chuàng)建一個名為 “mySubgraph” 的圖集合:
db.createCollection("mySubgraph")
接下來,您需要創(chuàng)建新的頂點(Vertex)和邊(Edge)來表示子圖中的節(jié)點和關系。您可以使用 db.collection.save()
方法創(chuàng)建新的頂點或邊。例如,創(chuàng)建一個名為 “Person” 的頂點:
db.mySubgraph.save({
_key: "person1",
name: "Alice",
age: 30
})
創(chuàng)建一個名為 “worksFor” 的邊,將 “Person” 頂點與另一個頂點(例如 “Organization”)關聯(lián)起來:
db.mySubgraph.save({
_from: "mySubgraph/person1",
_to: "mySubgraph/organization1",
role: "Developer"
})
您可以使用 AQL(ArangoDB 查詢語言)查詢子圖數(shù)據(jù)。例如,查詢 “mySubgraph” 中所有與 “person1” 頂點關聯(lián)的邊:
FOR edge IN mySubgraph._edges
FILTER edge._from == "mySubgraph/person1"
RETURN edge
您可以使用 AQL 更新和刪除子圖數(shù)據(jù)。例如,更新 “mySubgraph” 中名為 “person1” 的頂點的年齡:
FOR vertex IN mySubgraph._vertices
FILTER vertex._key == "person1"
UPDATE vertex WITH { age: 31 } IN mySubgraph
刪除 “mySubgraph” 中名為 “person1” 的頂點及其關聯(lián)的邊:
FOR vertex IN mySubgraph._vertices
FILTER vertex._key == "person1"
DELETE vertex IN mySubgraph
通過以上步驟,您可以在 ArangoDB 中創(chuàng)建一個子圖并對其進行操作。