Neo4j 的语法操作示例
1. 添加节点,避免使用correlation关键字
create (analysisParameter:analysisParameter {name:'大树',height:'10',type:'植物'}) return analysisParameter;
2. 添加节点的关系,避免使用correlation关键字
match (a:analysisParameter{name:"大树"}),(b:analysisParameter{name:"小鸟"}) with a,b create(a)-[analysisRelation:analysisRelation {source:'大树',target:'小鸟',relation:'1'}]->(b);
3. 更新节点,避免使用correlation关键字
match (n{ name:'大树'}) set n.height='1' return n.name,n.height;
4. 设置属性的值是null,等于移除节点的属性
match (n{ name:'大树'}) set n.name=NULL return n.name,n.height;
5. 移除节点的属性,默认,Neo4j不允许存在值为null的属性,如果属性不存在,那么返回属性的值是null
match (n{ name:'大树'}) remove n.height return n.name,n.height;
6. 更新节点的关系,避免使用correlation关键字
match (source:analysisParameter)-[relation:analysisRelation{source:'大树'}]->(target:analysisParameter) set relation.height='1.1' return relation;
match (source:analysisParameter)-[relation:analysisRelation]->(target:analysisParameter) where relation.source='小鸟' set relation.type='动物' return relation;
merge (source:analysisParameter)-[relation:analysisRelation]->(target:analysisParameter) where relation.source='小鸟' set relation.type='动物' return relation;
7. 查询节点
match(analysisParameter:analysisParameter) return analysisParameter limit 20; match(analysisParameter:analysisParameter{name:"大树"}) return analysisParameter; match(analysisParameter:analysisParameter) where analysisParameter.name in ['大树','小鸟'] return analysisParameter;
8. 关键字查询节点
match(analysisParameter:analysisParameter) where analysisParameter.name=~'.*树.*' return analysisParameter;
9. 查询节点和关系
match(source:analysisParameter)-[relation:analysisRelation]->(target:analysisParameter) where target.name='大树' return source as node,relation as edge;
10. 关键字查询节点和关系
match(source:analysisParameter)-[relation:analysisRelation]->(target:analysisParameter) where target.name=~'.*树.*' return source as node,relation as edge;
11. 统计节点数量
match (analysisParameter:analysisParameter) where analysisParameter.name='大树' return count(analysisParameter) as count;
12. 统计节点的关系数量
match(source:analysisParameter)-[relation:analysisRelation]->(target:analysisParameter) where target.name='小鸟' or source.name='大树' return count(target.name) as count;
13. 删除数据库,可以随意指定n
match (n) detach delete n;
14. 删除所有节点
match (analysisParameter:analysisParameter) delete analysisParameter;
15. 删除指定的节点
match (n:analysisParameter{name:'瓦舍'}) delete n;
16. 删除指定的节点
match (n:analysisParameter) where n.name='瓦舍' delete n;
17. 根据id删除节点
match (analysisParameter) where id(analysisParameter)=1000 delete analysisParameter return analysisParameter;
18. 删除2个节点之间的关系
match (x:analysisParameter{name:'大树'})-[r:analysisRelation]->(y:analysisParameter{name:'小鸟'}) delete r; match (x:analysisParameter)-[r:analysisRelation{source:'大树',target:'小鸟'}]->(y:analysisParameter) delete r;
match (x:analysisParameter)-[r:analysisRelation]->(y:analysisParameter) where r.source='大树' and r.target='小鸟' delete r;
19. 删除节点,需要删除和节点有关的所有关系
match (x:analysisParameter{name:'大树'})-[r:analysisRelation]->(y:analysisParameter{name:'小鸟'}) delete r;
match (n:analysisParameter{name:'大树'}) delete n;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端