Neo4j 安装与使用教程
Neo4j 图数据库的安装配置及基本使用方法。内容包括 JDK 环境准备、软件安装与环境变量配置、服务启停与状态查看、Dump 文件导入操作。重点讲解了 Cypher 查询语言的核心操作,涵盖节点与关系的创建、匹配、更新、删除及合并语句。此外还列举了数据库管理命令,包括约束、索引、信息查询及用户权限管理等实用技巧,适合初学者快速上手 Neo4j 开发。

Neo4j 图数据库的安装配置及基本使用方法。内容包括 JDK 环境准备、软件安装与环境变量配置、服务启停与状态查看、Dump 文件导入操作。重点讲解了 Cypher 查询语言的核心操作,涵盖节点与关系的创建、匹配、更新、删除及合并语句。此外还列举了数据库管理命令,包括约束、索引、信息查询及用户权限管理等实用技巧,适合初学者快速上手 Neo4j 开发。

安装配置好 JDK 17 及以上版本。
本文以 Neo4j 5.x 版本为例,需匹配 Java 17 环境。
直接安装即可。
配置以下环境变量:


下载解压即可,Windows 为绿色版本。
添加 neo4j 的安装地址到系统路径。

进入安装目录的 bin 文件夹,在命令行窗口输入:
./neo4j.bat console
直接按 Ctrl+C 即可关闭。
查看运行状态,在命令行窗口输入 neo4j status。
开启后访问以下网址即可查看:
neo4j-admin database load --from-path="D:\develop\neo4j-community-5.26.10\dumps" --overwrite-destination=true neo4j
注意,dump 文件的名称必须和数据库同名,否则会报错。
Neo4j 的常用命令主要分为两大类:Cypher 查询语言和Neo4j 管理命令。
Cypher 是 Neo4j 的声明式图查询语言,用于操作和查询图数据。它的语法非常直观,旨在匹配图中的模式。
用于创建节点、关系和属性。
-- 创建单个节点(无标签,无属性)
CREATE (n)
-- 创建带标签的节点
CREATE (n:Person)
-- 创建带标签和属性的节点
CREATE (n:Person {name: 'John Doe', age: 30})
-- 创建多个节点
CREATE (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
-- 在两个已存在节点间创建关系(需要先找到节点)
MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'})
CREATE (a)-[r:KNOWS {since: 2020}]->(b)
RETURN r
-- 在创建节点的同时创建关系(适用于节点也不存在时)
CREATE (a:Person {name: 'Alice'})-[r:LOVES {since: 2021}]->(b:Person {name: 'Bob'})
RETURN a, r, b
用于查询图中的节点和关系。通常与 RETURN 或 WHERE 等子句联用。
MATCH (n) RETURN n
MATCH (n:Person) RETURN n
MATCH (n:Person {name: 'Alice'}) RETURN n
-- 或使用 WHERE 子句
MATCH (n:Person) WHERE n.name = 'Alice' AND n.age > 25 RETURN n
-- 查找所有 KNOWS 关系
MATCH ()-[r:KNOWS]->() RETURN r
-- 查找从 Alice 出发的 KNOWS 关系
MATCH (a:Person {name: 'Alice'})-[r:KNOWS]->(b) RETURN a, r, b
用于修改节点或关系的属性或标签。
MATCH (n:Person {name: 'Alice'}) SET n.age = 31, n.city = 'Berlin' RETURN n
MATCH (n:Person {name: 'Alice'}) REMOVE n.city RETURN n
-- 或者使用 SET n.property = NULL
MATCH (n:Person {name: 'Alice'}) SET n:Employee RETURN n
MATCH (n:Person:Employee {name: 'Alice'}) REMOVE n:Employee RETURN n
用于删除节点和关系。
警告:必须先删除关系,才能删除节点。
-- 删除一个节点(确保该节点无任何关系)
MATCH (n:Person {name: 'Bob'}) DELETE n
-- 删除一个节点及其所有相连的关系
MATCH (n:Person {name: 'Bob'}) DETACH DELETE n
-- 删除关系
MATCH (a:Person {name: 'Alice'})-[r:KNOWS]->(b:Person {name: 'Bob'}) DELETE r
'有则返回,无则创建'。它确保一个模式存在于图中。如果该模式不存在,则创建它;如果存在,则只是匹配到它。强烈建议与 ON CREATE 和 ON MATCH 一起使用。
-- 合并节点(如果不存在则创建,并设置初始属性)
MERGE (n:Person {name: 'Alice'}) ON CREATE SET n.created_at = timestamp() ON MATCH SET n.last_seen = timestamp() RETURN n
-- 合并路径(节点和关系)
MERGE (a:Person {name: 'Alice'})-[r:KNOWS]->(b:Person {name: 'Bob'}) ON CREATE SET r.since = 2023 RETURN a, r, b
这些命令主要用于数据库管理、索引、约束和元数据查询。
用于保证数据的完整性。
CREATE CONSTRAINT constraint_name FOR (n:Person) REQUIRE n.email IS UNIQUE
SHOW CONSTRAINTS
DROP CONSTRAINT constraint_name
用于大幅提高查询性能。
CREATE INDEX index_name FOR (n:Person) ON (n.name)
CREATE INDEX index_name FOR (n:Person) ON (n.firstName, n.lastName)
SHOW INDEXES
DROP INDEX index_name
:sysinfo
CALL db.schema.visualization()
SHOW DATABASES
CALL db.info()
SHOW USERS
CREATE USER username SET PASSWORD 'password' CHANGE NOT REQUIRED SET STATUS ACTIVE
ALTER USER username SET PASSWORD 'newpassword' CHANGE NOT REQUIRED
MATCH (n) DETACH DELETE n
这会删除所有节点和关系,但不会删除索引和约束。
-- 统计图中所有节点的数量
MATCH (n) RETURN count(n)
-- 统计某个标签的节点数量
MATCH (n:Person) RETURN count(n)
:help - 查看帮助:play start - 打开初学指南:history - 查看命令历史Neo4j 的语言非常强大且易读,最好的学习方式就是在 Neo4j Browser 中实际操作。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online