Neo4j创建新的数据库及常用简单命令——社区版

一、创建新的数据库

Neo4j社区版数据库不支持在运行时动态创建或删除数据库。需要再Neo4j启动之前配置数据库。

1.编辑配置文件
找到Neo4j的配置文件neo4j.conf(通常位于<Neo4j安装目录>/conf/下)。
在这里插入图片描述

2.配置数据库:在neo4j.conf文件中,你可以指定多个数据库,例如:
在这里插入图片描述
3.重启Neo4j服务
保存配置文件后,重启Neo4j服务以应用更改。

4.使用新数据库
重启后,你可以通过Neo4j Browser或Cypher Shell连接到新数据库。

需要注意版本:Java11+Neo4J 4.4.38。Neo4J的版本过低则无法使用LangChian连接(3.X.X),版本过高则找不到 apoc 插件

报错解决方法

1.APOC权限不足

neo4j.exceptions.ClientError: {code: Neo.ClientError.Procedure.ProcedureRegistrationFailed} {message: apoc.meta.data is unavailable because it is sandboxed and has dependencies outside of the sandbox. Sandboxing is controlled by the dbms.security.procedures.unrestricted setting. Only unrestrict procedures you can trust with access to database internals.}

解决方法:

vim $NEO4J_HOME/conf/neo4j.conf
# 参考
# vim /root/neo4j-community-4.4.30/conf/neo4j.conf

找到security.procedures.unrestricted
在其下方添加以下代码:
dbms.security.procedures.unrestricted=apoc.*

2.APOC未安装

ValueError: Could not use APOC procedures. Please ensure the APOC plugin is installed in Neo4j and that 'apoc.meta.data()' is allowed in Neo4j configuration 

解决方法(注意版本对应):

Installation - APOC Extended Documentation

如果一直报错,则这样操作:

在这里插入图片描述

  1. 从neo4j安装目录中的labs目录下找到”apoc-5.25.1-core.jar“,将复制到neo4j目录下的plugins。

  2. 修改neo4j安装目录下conf/neo4j.conf。修改内容:

    添加这两行:

    dbms.security.procedures.unrestricted=apoc.*
    dbms.security.procedures.allowlist=apoc.*
    
  3. 重启neo4j,问题完美解决!

二、常用Cypher语句

1. 查询数据库中所有的节点

match(n) return n

match是匹配规则,(n)表示所有节点,语法要求加上小括号。
return n表示返回匹配到的所有节点

2. 创建一个节点

CREATE (p1:Person { name: "Liu Da", age: 20})

p1是变量名,Person是节点名,{}内包含了节点的两个属性。

3. 创建两个节点之间的关系

create 
(p1:Person{name:"Liu Da", age:20}),
(p2:Person{name:"Chen Er", age:22}),
(p1)-[:KNOWS]->(p2)

这里创建了两个节点,并且Liu Da知道Chen Er,但Chen Er不知道Liu Da

4. 查询两个节点的关系

MATCH (p1: Person)-[KNOWS]-(p2: Person) return p1,KNOWS,p2

5. 删除两个节点和它们的关系

注意:Neo4j删除节点时,要求把关系一并删除掉,不能只删除节点,不删除关系

MATCH (p1: Person)-[KNOWS]-(p2: Person) 
DELETE p1, KNOWS, p2

6. 为节点增加属性

create(p1:Person{name:"Liu Da"})
match(p1) set p1.age = 20

7. 修改节点属性

match(p1) set p1.age = 33

8. 查询节点所有属性

CREATE
(p2:Person { name: "Liu Er", age: 15, learn: "Muay Thai" }),
(p3:Person { name: "Zhang San", age: 25, sex: “Male” }),
(p4:Person { name: "Li Si", age: 30, hobby: "Muay Thai" }),
(p2)-[:KNOWS]->(p3),
(p3)-[:KNOWS]->(p2),
(p3)-[:KNOWS]->(p4)

9. 删除指定节点

MATCH (p:Person)
DELETE p

10. 清空数据库

MATCH (n)
DETACH DELETE n
Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐