Introduction to Neo4j Driver
The neo4j-driver is an essential tool for developers working with Neo4j databases. It provides a robust and efficient way to interact with your graph database using various APIs. This guide explores the core functionalities and showcases dozens of useful API examples along with an app example.
Connecting to Neo4j Database
To start using the Neo4j Driver, you need to establish a connection to the database. Below is a simple code snippet to connect to a Neo4j database:
const neo4j = require('neo4j-driver') const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('username', 'password'))
Creating and Managing Sessions
Sessions are used to execute transactions. Here’s how to create and manage sessions:
const session = driver.session() // Execute a query session.run('MATCH (n) RETURN n') .then(result => { result.records.forEach(record => { console.log(record.get(0)) }) }) .catch(error => { console.error(error) }) .then(() => session.close())
Executing Queries
The Neo4j Driver allows you to run various types of queries. Here are some examples:
- Creating Nodes
session.run('CREATE (n:Person {name: $name})', { name: 'Alice' }) .then(result => { console.log("Node created") }) .catch(error => { console.error(error) })
session.run('MATCH (n) RETURN n') .then(result => { result.records.forEach(record => { console.log(record.get('n').properties) }) }) .catch(error => { console.error(error) })
session.run('MATCH (n:Person {name: $name}) SET n.age = $age', { name: 'Alice', age: 30 }) .then(result => { console.log("Node updated") }) .catch(error => { console.error(error) })
session.run('MATCH (n {name: $name}) DELETE n', { name: 'Alice' }) .then(result => { console.log("Node deleted") }) .catch(error => { console.error(error) })
Transaction Management
Transaction management is crucial in handling complex queries. Here’s an example of how to manage transactions:
const tx = session.beginTransaction() tx.run('CREATE (n:Person {name: "Bob"})') .then(() => tx.commit()) .then(() => session.close()) .catch(error => { tx.rollback() console.error(error) })
Example App Using Neo4j Driver
Let’s put everything together in a simple app example:
const neo4j = require('neo4j-driver'); const express = require('express'); const app = express(); const driver = neo4j.driver('bolt://localhost:7687', neo4j.auth.basic('username', 'password')); const session = driver.session(); app.get('/create', (req, res) => { session.run('CREATE (n:Person {name: $name}) RETURN n', { name: 'Alice' }) .then(result => { res.send(result.records[0].get('n').properties); }) .catch(error => { res.status(500).send(error); }); }); app.get('/read', (req, res) => { session.run('MATCH (n) RETURN n') .then(result => { const nodes = result.records.map(record => record.get('n').properties); res.send(nodes); }) .catch(error => { res.status(500).send(error); }); }); app.listen(3000, () => { console.log('Server is running on port 3000'); });
With these snippets, you should be well-equipped to build and manage applications that interact with your Neo4j database efficiently.
Hash: ec6c4852a4d4ca0c8e293208f0cc2d3faace50234d7a73c70bbb499a8c33ab32