-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathupload_graphs.js
46 lines (39 loc) · 1.42 KB
/
upload_graphs.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import 'neo4j-driver';
import { Neo4jGraph } from '@langchain/community/graphs/neo4j_graph';
// Neo4j connection details
const url = 'neo4j+s://34a2dfcd.databases.neo4j.io';
const username = 'neo4j';
const password = 'uLfdmvjZwe9l273lzAuWuQzK_Dw8hSnkO8jF2uNFyds';
// const password = 'neo4Jexample';
const cypher = `
LOAD CSV WITH HEADERS FROM 'https://raw.githubusercontent.com/tomasonjo/blog-datasets/main/movies/movies_small.csv' AS row
MERGE (m:Movie {movieId: toInteger(row.movieId)})
SET m.title = row.title,
m.released = date(row.released),
m.imdbRating = toFloat(row.imdbRating),
m.genres = split(row.genres, '|')
FOREACH (director IN split(row.director, '|') |
MERGE (p:Person {name: trim(director)})
MERGE (p)-[:DIRECTED]->(m)
)
FOREACH (actor IN split(row.actors, '|') |
MERGE (p:Person {name: trim(actor)})
MERGE (p)-[:ACTED_IN]->(m)
)
`;
async function importMovies() {
try {
//driver = neo4j.driver(uri, neo4j.auth.basic(user, password));
var driver = neo4j.driver(url, neo4j.auth.basic(username, password));
const serverInfo = await driver.getServerInfo();
const result = await session.run(cypher);
console.log('Connection established');
console.log(serverInfo);
} catch (err) {
console.log(`Connection error\n${err}\nCause: ${err.cause}`);
} finally {
// await session.close();
}
// await driver.close();
}
importMovies();