Skip to the content.

GraphEdgeCollection API

The GraphEdgeCollection API extends the Collection API with the following methods.

graphEdgeCollection.remove

async graphEdgeCollection.remove(documentHandle): Object

Deletes the edge with the given documentHandle from the collection.

Arguments

Examples

const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");

await collection.remove("some-key");
// document 'edges/some-key' no longer exists

// -- or --

await collection.remove("edges/some-key");
// document 'edges/some-key' no longer exists

graphEdgeCollection.documentExists

async graphEdgeCollection.documentExists(documentHandle): boolean

Checks whether the edge with the given documentHandle exists.

Arguments

Examples

const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");

const exists = await collection.documentExists("some-key");
if (exists === false) {
  // the edge does not exist
}

graphEdgeCollection.document

async graphEdgeCollection.document(documentHandle, [opts]): Object

Alias: graphEdgeCollection.edge.

Retrieves the edge with the given documentHandle from the collection.

Arguments

If a boolean is passed instead of an options object, it will be interpreted as the graceful option.

Examples

const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");

const edge = await collection.document("some-key");
// the edge exists
assert.equal(edge._key, "some-key");
assert.equal(edge._id, "edges/some-key");

// -- or --

const edge = await collection.document("edges/some-key");
// the edge exists
assert.equal(edge._key, "some-key");
assert.equal(edge._id, "edges/some-key");

// -- or --

const edge = await collection.document("some-key", true);
if (edge === null) {
  // the edge does not exist
}

graphEdgeCollection.save

async graphEdgeCollection.save(data, [fromId, toId]): Object

Creates a new edge between the vertices fromId and toId with the given data.

Arguments

Examples

const db = new Database();
const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");
const edge = await collection.save(
  { some: "data" },
  "vertices/start-vertex",
  "vertices/end-vertex"
);
assert.equal(edge._id, "edges/" + edge._key);
assert.equal(edge.some, "data");
assert.equal(edge._from, "vertices/start-vertex");
assert.equal(edge._to, "vertices/end-vertex");

graphEdgeCollection.edges

async graphEdgeCollection.edges(documentHandle): Array<Object>

Retrieves a list of all edges of the document with the given documentHandle.

Arguments

Examples

const db = new Database();
const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");
await collection.import([
  ["_key", "_from", "_to"],
  ["x", "vertices/a", "vertices/b"],
  ["y", "vertices/a", "vertices/c"],
  ["z", "vertices/d", "vertices/a"],
]);
const edges = await collection.edges("vertices/a");
assert.equal(edges.length, 3);
assert.deepEqual(
  edges.map((edge) => edge._key),
  ["x", "y", "z"]
);

graphEdgeCollection.inEdges

async graphEdgeCollection.inEdges(documentHandle): Array<Object>

Retrieves a list of all incoming edges of the document with the given documentHandle.

Arguments

Examples

const db = new Database();
const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");
await collection.import([
  ["_key", "_from", "_to"],
  ["x", "vertices/a", "vertices/b"],
  ["y", "vertices/a", "vertices/c"],
  ["z", "vertices/d", "vertices/a"],
]);
const edges = await collection.inEdges("vertices/a");
assert.equal(edges.length, 1);
assert.equal(edges[0]._key, "z");

graphEdgeCollection.outEdges

async graphEdgeCollection.outEdges(documentHandle): Array<Object>

Retrieves a list of all outgoing edges of the document with the given documentHandle.

Arguments

Examples

const db = new Database();
const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");
await collection.import([
  ["_key", "_from", "_to"],
  ["x", "vertices/a", "vertices/b"],
  ["y", "vertices/a", "vertices/c"],
  ["z", "vertices/d", "vertices/a"],
]);
const edges = await collection.outEdges("vertices/a");
assert.equal(edges.length, 2);
assert.deepEqual(
  edges.map((edge) => edge._key),
  ["x", "y"]
);

graphEdgeCollection.traversal

async graphEdgeCollection.traversal(startVertex, opts): Object

Performs a traversal starting from the given startVertex and following edges contained in this edge collection.

Arguments

Examples

const db = new Database();
const graph = db.graph("some-graph");
const collection = graph.edgeCollection("edges");
await collection.import([
  ["_key", "_from", "_to"],
  ["x", "vertices/a", "vertices/b"],
  ["y", "vertices/b", "vertices/c"],
  ["z", "vertices/c", "vertices/d"],
]);
const result = await collection.traversal("vertices/a", {
  direction: "outbound",
  visitor: "result.vertices.push(vertex._key);",
  init: "result.vertices = [];",
});
assert.deepEqual(result.vertices, ["a", "b", "c", "d"]);