2017년 1월 6일 금요일

Edge CRUD

Tags

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

:)
:(
hihi
:-)
:D
=D
:-d
;(
;-(
@-)
:o
:>)
(o)
:p
:-?
(p)
:-s
8-)
:-t
:-b
b-(
(y)
x-)
(h)