Importing and Exporting Data
Discover various methods for loading data into Neo4j from external sources and exporting graph data for other uses.
Importing and Exporting Data is a free Neo4j Graph Database Fundamentals lesson on CoddyKit — lesson 2 of 4. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Neo4j Graph Database Fundamentals learning path, one of 4 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Moving Data In & Out
In this lesson, we'll explore how to get data into your Neo4j graph database and how to extract it for other uses. This is crucial for integrating Neo4j with existing systems, migrating data, or preparing it for analysis.
Importing Data: An Overview
Bringing external data into Neo4j is a common task. There are several powerful methods:
LOAD CSV: For structured data from CSV files.- APOC Procedures: For more complex formats like JSON, XML, or data from external databases.
- Connectors & Drivers: Programmatic import via application code.
We'll focus on the first two methods.
LOAD CSV: The Basics
The LOAD CSV Cypher clause is your go-to for importing data from CSV files. It lets you specify the file path, handle headers, and access each row's data.
Here's a basic structure to read a CSV and return its rows:
LOAD CSV WITH HEADERS FROM 'file:///users.csv' AS row
RETURN row;Creating Nodes from CSV
Let's say you have a users.csv file with id,name,email columns. You can use LOAD CSV to create User nodes:
LOAD CSV WITH HEADERS FROM 'file:///users.csv' AS row
CREATE (:User {id: row.id, name: row.name, email: row.email});Creating Relationships from CSV
You can also create relationships. If you have a follows.csv with followerId,followedId, you can connect existing User nodes:
- We use
MATCHto find the existing nodes. CREATEthen forms the relationship between them.
LOAD CSV WITH HEADERS FROM 'file:///follows.csv' AS row
MATCH (u1:User {id: row.followerId})
MATCH (u2:User {id: row.followedId})
CREATE (u1)-[:FOLLOWS]->(u2);Beyond CSV: APOC for Import
For more complex import scenarios, such as JSON or XML files, or data from external databases, the APOC (Awesome Procedures On Cypher) library is invaluable. APOC extends Cypher with hundreds of new procedures and functions.
You'll need to install the APOC plugin for your Neo4j instance to use these features.
Importing JSON with APOC
If you have data in a JSON file, like products.json, you can use apoc.load.json to parse it. Each item in the JSON array can then be processed to create nodes and relationships.
CALL apoc.load.json('file:///products.json') YIELD value
CREATE (:Product {id: value.id, name: value.name, price: toFloat(value.price)});
Exporting Data: An Overview
Just as important as importing is exporting data from your graph. You might need to:
- Generate reports.
- Migrate data to another system.
- Perform advanced analytics outside Neo4j.
- Create backups.
We'll look at basic Cypher export and advanced APOC export.
Basic Export with Cypher
The simplest way to export data is using standard Cypher MATCH and RETURN statements. The results are displayed in the Neo4j Browser and can be copied or downloaded as CSV/JSON.
MATCH (u:User)-[:FOLLOWS]->(f:User)
RETURN u.name AS Follower, f.name AS Followed;Advanced Export with APOC
APOC offers powerful procedures to export your graph data directly to files in various formats (CSV, JSON, GraphML, etc.). These are ideal for full graph exports or specific subgraphs.
For example, to export all nodes and relationships to a CSV file:
CALL apoc.export.csv.all('full_graph_export.csv', {});Import/Export Challenge
You have a CSV file named books.csv with the columns isbn, title, author. You want to import this data into Neo4j, creating nodes with the label Book and properties for each column.
Recap: Data Movement Skills
You've learned essential skills for moving data in and out of Neo4j:
LOAD CSVis powerful for structured data.- APOC procedures extend capabilities for JSON, complex exports, and more.
- Standard Cypher
MATCHandRETURNallow simple data extraction.
Mastering these techniques is key for managing your graph data effectively!
Frequently asked questions
Is the “Importing and Exporting Data” lesson free?
Yes — the full text of “Importing and Exporting Data” is free to read here on the web, and the Neo4j Graph Database Fundamentals course includes 4 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Neo4j Graph Database Fundamentals course, upgrade to CoddyKit PRO.
What will I learn in “Importing and Exporting Data”?
Discover various methods for loading data into Neo4j from external sources and exporting graph data for other uses. You practise Neo4j Graph Database Fundamentals with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Neo4j Graph Database Fundamentals?
No prior experience is required. Neo4j Graph Database Fundamentals on CoddyKit is structured for beginners through advanced learners; this is — lesson 2 of 4, so you can start here or from the beginning and move at your own pace.
How long does the “Importing and Exporting Data” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Neo4j Graph Database Fundamentals lesson?
Yes. Every Neo4j Graph Database Fundamentals lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Neo4j Browser and Admin Tools
- Importing and Exporting Data
- Backup and Restore Strategies
- Monitoring and Logging in Neo4j