neo4j直接在控制台执行 Cypher 命令

1. 进入 Neo4j 控制台(Cypher-shell)

通过 Docker 进入容器内的 Cypher-shell:

docker exec -it neo4j-server cypher-shell -u neo4j -p password123
  • 出现 neo4j> 提示符即表示连接成功


2. 基础数据操作(Cypher 命令)

① 创建节点

CREATE (:Person {name: 'Alice', age: 30});
CREATE (:Person {name: 'Bob', occupation: 'Developer'});
  • Person:节点标签(类似表名)

  • {}:节点属性(键值对)

② 查询节点

MATCH (p:Person) RETURN p;                 -- 查询所有Person节点
MATCH (p:Person {name: 'Alice'}) RETURN p; -- 按属性查询

③ 更新节点

MATCH (p:Person {name: 'Alice'}) 
SET p.age = 31, p.city = 'Beijing';       -- 修改/新增属性

④ 删除节点

MATCH (p:Person {name: 'Bob'}) 
DELETE p;                                 -- 先删除关联关系才能删节点

⑤ 创建关系(边)

-- 先匹配两个节点
MATCH (a:Person {name: 'Alice'}), (b:Person {name: 'Bob'}) 
-- 创建带属性的关系
CREATE (a)-[r:FRIENDS {since: '2023-01-01'}]->(b);
  • FRIENDS:关系类型

  • since:关系属性

⑥ 查询关系

MATCH (a)-[r:FRIENDS]->(b) 
RETURN a.name, r.since, b.name;

3. 高级操作示例

批量导入数据

UNWIND [
  {name: 'Charlie', age: 25},
  {name: 'David', age: 40}
] AS row
CREATE (:Person {name: row.name, age: row.age});

复杂查询(路径查找)

MATCH path = (a:Person)-[:FRIENDS*2]->(b:Person)
RETURN path;

添加索引(提升查询性能)

CREATE INDEX FOR (p:Person) ON (p.name);

4. 控制台实用技巧

命令/快捷键功能
:help 查看帮助
:history 查看历史命令
Ctrl + C 终止当前查询
MATCH (n) RETURN n 查看所有节点和关系
:exit 退出 Cypher-shell

5. 可视化验证

执行完操作后,在浏览器访问 http://localhost:7474

  1. 输入 MATCH (n) RETURN n 查看完整图谱

  2. 点击节点/关系查看属性

https://neo4j.com/docs/cypher-manual/current/images/result-graph-view.png


6. 数据备份(通过控制台)

# 在宿主机执行(非Cypher-shell)
docker exec your-neo4j-container neo4j-admin dump --to=/data/backup.dump

常见问题解决

  1. 语法错误:确保每条 Cypher 以分号结尾

  2. 删除限制:删除节点前需先删除其关系

  3. 性能优化:大数据量时添加 LIMIT 子句

    MATCH (p:Person) RETURN p LIMIT 100;

通过 Cypher-shell 可以高效完成所有数据操作,适合自动化脚本和快速调试!

posted @ 2025-08-07 14:36  郭慕荣  阅读(39)  评论(0)    收藏  举报