Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

ArangoDB: Working with edge documents

Edge document are like normal document with additional two attributes _from, _to.

 

Edge collection has ‘edges’ method which takes a vertex (or) vertices as input and return all edges starting from (outbound) or ending in (inbound) vertex (or) vertices.

 

Signature

edge-collection.edges(vertex)

edge-collection.edges(vertices)

 

Let’s experiment it with by building simple graph.


Step 1: Create two collections, one is of type document/vertex and other is of type edge.

 

db._createDocumentCollection("myVertexes")

db._createEdgeCollection("myEdges")

127.0.0.1:8529@abc_org> db._createDocumentCollection("myVertexes")
[ArangoCollection 36584, "myVertexes" (type document, status loaded)]

127.0.0.1:8529@abc_org> db._createEdgeCollection("myEdges")
[ArangoCollection 36601, "myEdges" (type edge, status loaded)]

 

Step 2: Create 5 vertex documents v1, v2, v3, v4 and v5.

var myGraph = {};
myGraph.v1 = db.myVertexes.save({ name : "vertex 1" });
myGraph.v2 = db.myVertexes.save({ name : "vertex 2" });
myGraph.v3 = db.myVertexes.save({ name : "vertex 3" });
myGraph.v4 = db.myVertexes.save({ name : "vertex 4" });
myGraph.v5 = db.myVertexes.save({ name : "vertex 5" });

127.0.0.1:8529@abc_org> var myGraph = {};

127.0.0.1:8529@abc_org> myGraph.v1 = db.myVertexes.save({ name : "vertex 1" });
{
"_id" : "myVertexes/36641",
"_key" : "36641",
"_rev" : "_cS_C0bq---"
}


 

127.0.0.1:8529@abc_org> myGraph.v2 = db.myVertexes.save({ name : "vertex 2" });
{
"_id" : "myVertexes/36643",
"_key" : "36643",
"_rev" : "_cS_C0bq--A"
}

127.0.0.1:8529@abc_org> myGraph.v3 = db.myVertexes.save({ name : "vertex 3" });
{
"_id" : "myVertexes/36645",
"_key" : "36645",
"_rev" : "_cS_C0bu---"
}

127.0.0.1:8529@abc_org> myGraph.v4 = db.myVertexes.save({ name : "vertex 4" });
{
"_id" : "myVertexes/36647",
"_key" : "36647",
"_rev" : "_cS_C0by---"
}

127.0.0.1:8529@abc_org> myGraph.v5 = db.myVertexes.save({ name : "vertex 5" });
{
"_id" : "myVertexes/36649",
"_key" : "36649",
"_rev" : "_cS_C02u---"
}

 

Step 3: Create edges between vertexes.

myGraph.e1 = db.myEdges.save(myGraph.v1, myGraph.v2,{ label : "linkTo"});
myGraph.e2 = db.myEdges.save(myGraph.v1, myGraph.v3,{ label : "linkTo"});
myGraph.e3 = db.myEdges.save(myGraph.v2, myGraph.v4,{ label : "linkTo"});
myGraph.e4 = db.myEdges.save(myGraph.v3, myGraph.v5,{ label : "linkTo"});
myGraph.e5 = db.myEdges.save(myGraph.v4, myGraph.v3,{ label : "linkTo"});
myGraph.e6 = db.myEdges.save(myGraph.v4, myGraph.v5,{ label : "linkTo"});

 

Get all the inbound and outbound edges of vertex v3

127.0.0.1:8529@abc_org> db.myEdges.edges(myGraph.v3)
[
{
"_key" : "36717",
"_id" : "myEdges/36717",
"_from" : "myVertexes/36645",
"_to" : "myVertexes/36649",
"_rev" : "_cS_EWBq---",
"label" : "linkTo"
},
{
"_key" : "36713",
"_id" : "myEdges/36713",
"_from" : "myVertexes/36641",
"_to" : "myVertexes/36645",
"_rev" : "_cS_EWBi---",
"label" : "linkTo"
},
{
"_key" : "36719",
"_id" : "myEdges/36719",
"_from" : "myVertexes/36647",
"_to" : "myVertexes/36645",
"_rev" : "_cS_EWBu---",
"label" : "linkTo"
}
]

 

Get all outbound edges of vertex v3

127.0.0.1:8529@abc_org> db.myEdges.outEdges(myGraph.v3)
[
{
"_key" : "36717",
"_id" : "myEdges/36717",
"_from" : "myVertexes/36645",
"_to" : "myVertexes/36649",
"_rev" : "_cS_EWBq---",
"label" : "linkTo"
}
]

 

Get all inbound edges of vertex v3

127.0.0.1:8529@abc_org> db.myEdges.inEdges(myGraph.v3)
[
{
"_key" : "36713",
"_id" : "myEdges/36713",
"_from" : "myVertexes/36641",
"_to" : "myVertexes/36645",
"_rev" : "_cS_EWBi---",
"label" : "linkTo"
},
{
"_key" : "36719",
"_id" : "myEdges/36719",
"_from" : "myVertexes/36647",
"_to" : "myVertexes/36645",
"_rev" : "_cS_EWBu---",
"label" : "linkTo"
}
]

 

 

 

Previous                                                    Next                                                    Home


This post first appeared on Java Tutorial : Blog To Learn Java Programming, please read the originial post: here

Share the post

ArangoDB: Working with edge documents

×

Subscribe to Java Tutorial : Blog To Learn Java Programming

Get updates delivered right to your inbox!

Thank you for your subscription

×