Neo4j导入导出和基本cypher语句

linux环境,导入导出

先停止

cd /opt/neo4j/neo4j-community-3.5.5/bin/
./neo4j stop

导出

./neo4j-admin  dump --database=graph.db --to=/opt/neo4j/graph.db.dump

导入

./neo4j-admin load --from=/home/robot/Neoj_data/graph.db.dump --database=graph.db --force

启动

./neo4j start

windows下导入导出(管理员权限打开cmd)

导出

neo4j-admin dump --database=graph.db --to=D:\database\neo4j-community-3.5.6-windows\graph.db.dump

导入

neo4j-admin load --from=D:\database\neo4j-community-3.5.6-windows\graph.db.dump --database=graph.db --force

启动

neo4j.bat console

访问
http://localhost:7474/

cypher语句语法

--------------查询--------------

查询全部

match(n) return n

查询特定属性的

match(n) 
where n.code='lsj' 
return n;
match(n{name:'Tom Hanks'}) 
return n;

模糊查询

MATCH (n) where n.showname =~ '.*测试.*' RETURN n 

查询具有指定Lable的节点

match(n:OP) 
return n;

--------------创建--------------

create (n:Person {showname:'李',unit:'人',code:'li',des:'',type:'Simple',title:'李2',innercode:'li'}) return n;
create (n:AM:GL {showname:'收入',unit:'元',code:'SR_GL_AM',des:'',type:'Simple',title:'收入',innercode:'SR_GL_AM'}) return n;

--------------更新--------------
为节点增加或修改属性

match (n)
where n.code='li'
set n.title = '李2',
n.showname = '李1'
return n;

为节点增加标签

match (n)
where id(n)=7
set n:Company
return n;

为节点更新标签

match (n)
where n.code='LSJ'
set n:GL:AM remove n:GL2:AM2
return n;

同时更新label和属性

match (n)
where n.code='LSJ'
remove n:GL2:AM2 set n:GL:AM 
set n = {code:'LSJ',innercode:'LSJ',type:'Simple',title:'办公费2',showname:'办公费2',unit:'元',des:'2'}

为关系增加属性

match (n)<-[r]-(m)
where id(n)=7 and id(m)=8
set r.team='Azure'
return n;

--------------创建关系--------------
创建没有任何属性的关系

MATCH (a:Person),(b:Movie)
WHERE a.name = 'Robert Zemeckis' AND b.title = 'Forrest Gump'
CREATE (a)-[r:DIRECTED]->(b)
RETURN r;

创建关系,并设置关系的属性

MATCH (a:Person),(b:Movie)
WHERE a.name = 'Tom Hanks' AND b.title = 'Forrest Gump'
CREATE (a)-[r:ACTED_IN { roles:['Forrest'] }]->(b)
RETURN r;
MATCH (a),(b)
WHERE a.code = 'li' AND b.code = 'li2'
CREATE (a)-[r:Sum_to {cal_grp: ["1"], cal_pl: ["1"], title: ["线性增强"], roles: ["Sum"]}]->(b)
RETURN r;

--------------查询关系--------------
查询跟指定节点有关系的节点

match(a)-[r]->(b) where a.code = 'A_JZS' return a, b

为关系命名,通过[r]为关系定义一个变量名,通过函数type获取关系的类型

MATCH (a{code: 'lsj' })-[r]->(b{ code: 'lsj2' })
RETURN r,type(r);

查询特定的关系类型,通过[Variable:RelationshipType{Key:Value}]指定关系的类型和属性

MATCH (a{ code: 'LSJ' })-[r:Sum_to{cal_grp:["1"],cal_pl:["1"],title:["线性增强"],roles:["Sum"]}]->(b{ code: 'LSJ2' })
RETURN r,type(r);

--------------删除--------------
【1】先删关系,再删节点
【2】当记不得关系名时,type( r )可以查到关系名
【3】彻底删除节点标签名,需要删除前期对该标签名建立的索引

查看某个节点或每一类节点的所有关系

MATCH (n:LSJ)-[r]-() RETURN n,r
MATCH (n{code:'lsj'})-[r]-() RETURN n,r

删除节点,以及与之相关的所有关系

match(n) where n.showname =~ '.*测试.*' delete n

match(n)-[r]->(b) where b.code = 'A_LSJ_1' delete r

MATCH (n:LSJ)-[r]-() DELETE n,r   
MATCH (n{code:'lsj'})-[r]-() DELETE  n,r
match(n) 
where n.code='li2' 
delete n;

--------------清空全部数据--------------
正常情况下,需要先删除所有的关系,才能删除节点

MATCH p = ()-[r]->() delete p //删除关系
MATCH (n) delete n //删除节点

另一种快速清库方法

MATCH (n) detach delete n

统计所有节点个数:

MATCH (n) RETURN count(*) 
### Neo4j 数据导入与导出方法 #### 使用 `neo4j-admin` 工具进行数据库转储 (Dump) 对于希望将整个 Neo4j 数据库保存到文件系统的用户来说,官方提供了 `neo4j-admin database dump` 命令来实现这一功能。通过指定目标路径参数 (`--to-path`) 可以控制输出文件的位置。 ```bash neo4j-admin database dump chatai --to-path=D:\Desktop ``` 这条命令会创建一个名为 `chatai.dump` 的文件于给定目录下[^1]。 #### 加载已有的备份至新环境 当需要恢复之前制作好的 `.dump` 文件回到新的实例里时,则需要用到相对应的加载指令: ```bash neo4j-admin database load chatai --from-path=/path/to/dumpfile --overwrite-destination=true ``` 这里假设 `/path/to/dumpfile/chatai.dump` 是要还原的数据集位置;而选项 `--overwrite-destination` 表明如果同名数据库已经存在则允许覆盖它[^3]。 #### 处理启动异常情况 有时可能会遇到由于某些原因导致的服务无法正常启动的情况,比如遇到了如下错误提示: > org.neo4j.server.ServerStartupException: Starting Neo4j failed... 这通常意味着内部组件初始化失败了。此时建议先检查日志文件获取更多线索,并确认配置项是否正确无误[^2]。 #### CSV 文件批量插入节点关系 除了整库级别的迁移外,在日常开发测试过程中更常见的需求可能是针对特定表单或集合做增量更新。这时可以通过编写 Cypher 查询语句配合 LOAD CSV 功能完成高效地大批量写入操作。 ```cypher LOAD CSV WITH HEADERS FROM "file:///nodes.csv" AS row CREATE (:Label {property:row.column}) ``` 上述例子展示了怎样读取本地磁盘上的 CSV 文档并据此构建图结构中的实体对象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值