Graph API

These functions implement the HTTP API for manipulating graphs.

ArangoDatabase.createGraph

ArangoDatabase.createGraph(String name, Collection<EdgeDefinition> edgeDefinitions, GraphCreateOptions options) : GraphEntity

Create a new graph in the graph module. The creation of a graph requires the name of the graph and a definition of its edges.

Arguments

  • name: String

    Name of the graph

  • edgeDefinitions: Collection<EdgeDefinition>

    An array of definitions for the edge

  • options: GraphCreateOptions

    • orphanCollections: String...

      Additional vertex collections

    • isSmart: Boolean

      Define if the created graph should be smart. This only has effect in Enterprise Edition.

    • replicationFactor: Integer

      (The default is 1): in a cluster, this attribute determines how many copies of each shard are kept on different DB-Servers. The value 1 means that only one copy (no synchronous replication) is kept. A value of k means that k-1 replicas are kept. Any two copies reside on different DB-Servers. Replication between them is synchronous, that is, every write operation to the “leader” copy will be replicated to all “follower” replicas, before the write operation is reported successful. If a server fails, this is detected automatically and one of the servers holding copies take over, usually without an error being reported.

    • minReplicationFactor: Integer

      (optional, default is 1): in a cluster, this attribute determines how many copies of each shard are required to be in sync on the different DB-Servers. If we have less then these many copies in the cluster a shard will refuse to write. The minReplicationFactor can not be larger than replicationFactor. Please note: during server failures this might lead to writes not being possible until the failover is sorted out and might cause write slow downs in trade of data durability.

    • numberOfShards: Integer

      The number of shards that is used for every collection within this graph. Cannot be modified later.

    • smartGraphAttribute: String

      The attribute name that is used to smartly shard the vertices of a graph. Every vertex in this Graph has to have this attribute. Cannot be modified later.

Examples

ArangoDB arango = new ArangoDB.Builder().build();
ArangoDatabase db = arango.db("myDB");

EdgeDefinition edgeDefinition = new EdgeDefinition()
                                  .collection("edges")
                                  .from("start-vertices")
                                  .to("end-vertices");
GraphEntity graph = db.createGraph(
  "some-graph", Arrays.asList(edgeDefinition), new GraphCreateOptions()
);
// graph now exists

ArangoGraph.create

ArangoGraph.create(Collection<EdgeDefinition> edgeDefinitions, GraphCreateOptions options) : GraphEntity

Create a new graph in the graph module. The creation of a graph requires the name of the graph and a definition of its edges.

Alternative for ArangoDatabase.createGraph.

Arguments

  • edgeDefinitions: Collection<EdgeDefinition>

    An array of definitions for the edge

  • options: GraphCreateOptions

    • orphanCollections: String...

      Additional vertex collections

    • isSmart: Boolean

      Define if the created graph should be smart. This only has effect in Enterprise Edition.

    • replicationFactor: Integer

      (The default is 1): in a cluster, this attribute determines how many copies of each shard are kept on different DB-Servers. The value 1 means that only one copy (no synchronous replication) is kept. A value of k means that k-1 replicas are kept. Any two copies reside on different DB-Servers. Replication between them is synchronous, that is, every write operation to the “leader” copy will be replicated to all “follower” replicas, before the write operation is reported successful. If a server fails, this is detected automatically and one of the servers holding copies take over, usually without an error being reported.

    • numberOfShards: Integer

      The number of shards that is used for every collection within this graph. Cannot be modified later.

    • smartGraphAttribute: String

      The attribute name that is used to smartly shard the vertices of a graph. Every vertex in this Graph has to have this attribute. Cannot be modified later.

Examples

ArangoDB arango = new ArangoDB.Builder().build();
ArangoDatabase db = arango.db("myDB");

ArangoGraph graph = db.graph("some-graph");
EdgeDefinition edgeDefinition = new EdgeDefinition()
                                  .collection("edges")
                                  .from("start-vertices")
                                  .to("end-vertices");
graph.create(Arrays.asList(edgeDefinition), new GraphCreateOptions());
// graph now exists

ArangoGraph.exists

ArangoGraph.exists() : boolean

Checks whether the graph exists

Examples

ArangoDB arango = new ArangoDB.Builder().build();
ArangoDatabase db = arango.db("myDB");

ArangoGraph graph = db.graph("some-graph");
boolean exists = graph.exists();

ArangoGraph.getInfo

ArangoGraph.getInfo() : GraphEntity

Retrieves general information about the graph.

Examples

ArangoDB arango = new ArangoDB.Builder().build();
ArangoDatabase db = arango.db("myDB");

ArangoGraph graph = db.graph("some-graph");
GraphEntity info = graph.getInfo();

ArangoGraph.drop

ArangoGraph.drop(boolean dropCollections) : void

Deletes the graph from the database.

Arguments

  • dropCollections: boolean

    Drop collections of this graph as well. Collections will only be dropped if they are not used in other graphs.

Examples

ArangoDB arango = new ArangoDB.Builder().build();
ArangoDatabase db = arango.db("myDB");

ArangoGraph graph = db.graph("some-graph");
graph.drop();
// the graph "some-graph" no longer exists