Neo4j 图数据库安装与操作指南 (Mac)
在 macOS 环境下安装和配置 Neo4j 图数据库的步骤,包括 Java 环境依赖、Homebrew 安装及手动解压方式。内容涵盖环境变量设置、服务启动、停止及重启命令。同时详细演示了使用 Cypher 语言创建节点与关系、修改属性、匹配查询(含字符串匹配)以及删除节点和关系的常用操作,适合初学者快速上手图数据库基础应用。

在 macOS 环境下安装和配置 Neo4j 图数据库的步骤,包括 Java 环境依赖、Homebrew 安装及手动解压方式。内容涵盖环境变量设置、服务启动、停止及重启命令。同时详细演示了使用 Cypher 语言创建节点与关系、修改属性、匹配查询(含字符串匹配)以及删除节点和关系的常用操作,适合初学者快速上手图数据库基础应用。

Neo4j 需要 Java 运行环境来运行,因此首先需要安装 JDK。可以从 Oracle 官网或 OpenJDK 网站下载并安装适合 Mac 的 JDK 版本。假设你选择的是 Neo4j 5.25.1,应使用 JDK 17 或更高版本;选择的是 Neo4j 4.4.39,应使用 JDK 11。
Homebrew 是 Mac 上的一个包管理器,可以简化安装和管理软件的过程。如果你还没有安装 Homebrew,可以通过在终端中输入以下命令来安装:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
访问 Neo4j 的官方网站:Neo4j Download,这里下载到的是桌面版,版本一般都是最新的。也可以选择 Graph Database 进行下载。
因某些 Python 文件应用了函数,5.x 可能不支持,建议根据需求选择合适的版本(如 4.4.39),下载并解压缩后在该文件夹下即可执行 neo4j 命令。
打开终端,输入以下命令来安装 Neo4j:
brew install neo4j
安装完成后,Neo4j 的可执行文件通常位于 /usr/local/opt/neo4j/bin 目录下。
如果你打算从命令行启动 Neo4j 服务,可能需要将其可执行文件的路径添加到系统 PATH 环境变量中。通常路径如下:
/Applications/Neo4j Desktop.app/Contents/Resources/app/bin/bin 目录将上述命令添加到你的 ~/.bash_profile 或 ~/.zshrc 文件中(取决于使用的 shell),然后运行 source ~/.bash_profile 或 source ~/.zshrc 使其生效。
通过 Spotlight 搜索(按下 Command + 空格,输入'Terminal'并回车)打开终端。
open -e ~/.bash_profile
这会使用默认文本编辑器打开文件。注意,TextEdit 可能会以富文本格式显示,建议在打开后立即按 Command + Shift + T 切换到纯文本模式。
nano ~/.bash_profile
编辑完成后,按 Control + O 保存,按 Enter 确认文件名,最后按 Control + X 退出。
导航到用户目录,启用显示隐藏文件的选项(在 Finder 中按下 Command + Shift + .),找到 .bash_profile 直接修改保存即可。
如果已添加 PATH 或使用 Homebrew 安装,可在终端输入命令启动:
neo4j start
启动成功后,可通过 Web 界面访问 http://localhost:7474,使用默认用户名 neo4j 和密码 neo4j(首次登录会提示更改密码)。
未添加 PATH 时,可使用完整路径启动:
/Users/scc/AUserProjects/neo4j-community-4.4.38/bin/neo4j start
Neo4j 的 Cypher 查询语言用于构建、查询和操作图数据库。图由节点(Node)、关系(Relationship)和属性(Property)组成。
CREATE (n {name:"曹操"})
CREATE (p:Person{name:"曹操"})
无标签:
UNWIND [{name: '张辽'}, {name: '关羽'}] AS myNodes
CREATE (n) SET n = myNodes
有标签:
UNWIND [{name: '貂蝉'}, {name: '吕布'}] AS myNode
CREATE (n:Person {name: myNode.name})
给已存在的两个节点创建关系:
MATCH (a:Person),(b:Person)
WHERE a.name = '吕布' AND b.name = '貂蝉'
CREATE (a)-[r:妻子]->(b)
RETURN r
MATCH (n {name:'吕布'})
SET n.age=18
RETURN n
MATCH (n{name:'关羽'}) SET n:Person RETURN n
Cypher 的 MATCH 语句类似 SQL 的 SELECT 语句,WHERE 子句用于过滤。
MATCH (n{name:"吕布"}) RETURN n
MATCH (n{age:18}) RETURN n
MATCH (n:Person{name:"吕布"}) RETURN n
MATCH (n) RETURN n
MATCH p = (n)-[r]->(m) RETURN p
开头:
MATCH (n)
WHERE n.name STARTS WITH '吕'
RETURN n
末尾:
MATCH (n)
WHERE n.name ENDS WITH '布'
RETURN n
包含:
MATCH (n)
WHERE n.name CONTAINS '吕'
RETURN n
排除:
MATCH (n)
WHERE NOT n.name STARTS WITH '吕'
RETURN n
MATCH (n{name:'夏侯淳'}) REMOVE n.age RETURN n
MATCH (n{name:'夏侯淳'}) REMOVE n:Person RETURN n
MATCH (p:Person {name: '夏侯淳'})
DELETE p
仅删除关系,保留节点:
MATCH (a)-[r]->(b)
WHERE a.name = '吕布' AND b.name = '貂蝉'
DELETE r
删除关系以及至少一端没有其他关系的节点:
MATCH (a)-[r]->(b)
WHERE a.name = '节点 A' AND b.name = '节点 B'
DETACH DELETE r
MATCH (a), (b)
WHERE a.name = '节点 A' AND b.name = '节点 B'
DELETE a, b
清空带有关系的节点及关系(危险操作):
MATCH (n)-[r]-()
DELETE n, r
清空所有节点(危险操作):
MATCH (n) DELETE n
neo4j --versionneo4j statusneo4j restartneo4j stopbrew uninstall neo4jrm -rf /usr/local/var/neo4j
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online
JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online
使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online
Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online