Edges
Edge 는 _from과 _to 속성을 항상 포함하는 특수한 document이다. 따라서 document 메소드를 edge에 사용할 수 있다.
edge-collection.edges(vertex)
edges 메소드는 vertex로부터 나가는 edge 혹은 vertex로 들어오는 edge를 모두 찾을 것이다.
edge-collection.edges(vertices)
vertices는 반드시 _id나 document의 array여야 한다.
arangosh> db._create("vertex");
[ArangoCollection 7372, "vertex" (type document, status loaded)]
arangosh> db._createEdgeCollection("relation");
[ArangoCollection 7374, "relation" (type edge, status loaded)]
arangosh> myGraph.v1 = db.vertex.insert({ name : "vertex 1" });
{
"_id" : "vertex/7377",
"_key" : "7377",
"_rev" : "_USnx8ae---"
}
arangosh> myGraph.v2 = db.vertex.insert({ name : "vertex 2" });
{
"_id" : "vertex/7381",
"_key" : "7381",
"_rev" : "_USnx8ae--_"
}
arangosh> myGraph.e1 = db.relation.insert(myGraph.v1, myGraph.v2,
........> { label : "knows"});
{
"_id" : "relation/7384",
"_key" : "7384",
"_rev" : "_USnx8ae--A"
}
arangosh> db._document(myGraph.e1);
{
"_key" : "7384",
"_id" : "relation/7384",
"_from" : "vertex/7377",
"_to" : "vertex/7381",
"_rev" : "_USnx8ae--A",
"label" : "knows"
}
arangosh> db.relation.edges(myGraph.e1._id);
[ ]
edge-collection.inEdges(vertex)
vertex로 들어오는(_to = vertex) 모든 edge를 찾는다.
edge-collection.inEdges(vertices)
배열로 넘길 경우 _id나 document형태의 array여야 한다.
Examples
arangosh> db._create("vertex");
[ArangoCollection 7391, "vertex" (type document, status loaded)]
arangosh> db._createEdgeCollection("relation");
[ArangoCollection 7393, "relation" (type edge, status loaded)]
arangosh> myGraph.v1 = db.vertex.insert({ name : "vertex 1" });
{
"_id" : "vertex/7396",
"_key" : "7396",
"_rev" : "_USnx8gG---"
}
arangosh> myGraph.v2 = db.vertex.insert({ name : "vertex 2" });
{
"_id" : "vertex/7400",
"_key" : "7400",
"_rev" : "_USnx8gG--_"
}
arangosh> myGraph.e1 = db.relation.insert(myGraph.v1, myGraph.v2,
........> { label : "knows"});
{
"_id" : "relation/7403",
"_key" : "7403",
"_rev" : "_USnx8gK---"
}
arangosh> db._document(myGraph.e1);
{
"_key" : "7403",
"_id" : "relation/7403",
"_from" : "vertex/7396",
"_to" : "vertex/7400",
"_rev" : "_USnx8gK---",
"label" : "knows"
}
arangosh> db.relation.inEdges(myGraph.v1._id);
[ ]
arangosh> db.relation.inEdges(myGraph.v2._id);
[
{
"_key" : "7403",
"_id" : "relation/7403",
"_from" : "vertex/7396",
"_to" : "vertex/7400",
"_rev" : "_USnx8gK---",
"label" : "knows"
}
]
edge-collection.outEdges(vertex)
vertex에서 나가는 모든 edge를 가져온다.
edge-collection.outEdges(vertices)
Examples
arangosh> db._create("vertex");
[ArangoCollection 7411, "vertex" (type document, status loaded)]
arangosh> db._createEdgeCollection("relation");
[ArangoCollection 7413, "relation" (type edge, status loaded)]
arangosh> myGraph.v1 = db.vertex.insert({ name : "vertex 1" });
{
"_id" : "vertex/7416",
"_key" : "7416",
"_rev" : "_USnx8lC---"
}
arangosh> myGraph.v2 = db.vertex.insert({ name : "vertex 2" });
{
"_id" : "vertex/7420",
"_key" : "7420",
"_rev" : "_USnx8lG---"
}
arangosh> myGraph.e1 = db.relation.insert(myGraph.v1, myGraph.v2,
........> { label : "knows"});
{
"_id" : "relation/7423",
"_key" : "7423",
"_rev" : "_USnx8lG--_"
}
arangosh> db._document(myGraph.e1);
{
"_key" : "7423",
"_id" : "relation/7423",
"_from" : "vertex/7416",
"_to" : "vertex/7420",
"_rev" : "_USnx8lG--_",
"label" : "knows"
}
arangosh> db.relation.outEdges(myGraph.v1._id);
[
{
"_key" : "7423",
"_id" : "relation/7423",
"_from" : "vertex/7416",
"_to" : "vertex/7420",
"_rev" : "_USnx8lG--_",
"label" : "knows"
}
]
arangosh> db.relation.outEdges(myGraph.v2._id);
[ ]
EmoticonEmoticon