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;

posted @   瓦舍  阅读(227)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示