const arangojs = require("arangojs");
const db = new arangojs.Database();
db.useBasicAuth("username", "password");
db.useDatabase("mydatabase");
const collectionName = "socialNetwork";
const graph = db.graph(collectionName);
const vertexCollection = graph.vertexCollection("users");
const edgeCollection = graph.edgeCollection("connections");
if (!(await graph.exists())) {
await graph.create(
[{ collection: vertexCollection.name, type: "vertex" }],
[{ collection: edgeCollection.name, type: "edge" }]
);
}
const fs = require("fs");
const userData = JSON.parse(fs.readFileSync("users.json"));
for (const user of userData) {
await vertexCollection.save(user);
}
const relationshipData = JSON.parse(fs.readFileSync("relationships.json"));
for (const relationship of relationshipData) {
await edgeCollection.save(relationship);
}
const aql = require("arangojs").aql;
const query = `
FOR v, e, p IN 1..3 ANY "users/1" connections
FILTER p.edges[**].weight >= 0.5
RETURN p.vertices
`;
const result = await db.query(aql`${query}`);
for await (const vertex of result) {
console.log(vertex);
}