Neo4j删除节点和关系、彻底删除节点标签名
https://www.jianshu.com/p/59bd829de0de
总结提前:
【1】先删关系,再删节点
【2】当记不得关系名时,type(r)可以查到关系名
【3】彻底删除节点标签名,需要删除前期对该标签名建立的索引
问题描述:
数据库里已经创建好了节点和关系,现在想删除BC_Company、BC_Knowledge、BC_Person、Coin这4类节点,但是它们之间存在复杂的关系。

先删节点会遇到错误。当节点与其他节点存在关系的时候,删除该节点就会报错,错误提示你应该先删除它的关系们。所以应该先删关系,再删节点。

1删除某类节点的所有关系。
假设我目前想删除BC_Person这类节点,但是这类节点与其他节点存在关系,并且我还不知道是什么关系,那么怎么删除BC_Person这类节点,以及它存在的所有关系?
通过语句:MATCH (n:BC_Person)-[r]-() RETURN n,r可以查看到以下信息

通过语句:MATCH (n:BC_Person)-[r]-() DELETE n,r (删除节点,以及与之相关的所有关系)

虽然上图执行语句后显示:删除了1520个节点,删除了1530个关系。
如果再点击数据库中的BC_Person节点还有返回值,说明还有一些不存在关系的节点没有删除掉。所以还得再用语句:MATCH (n:BC_Person) DELETE n 确保BC_Person类型节点完全删除干净了。

使用以上语句删除干净了所有节点,但是节点标签BC_Person还留存在数据标签里
如果BC_Person该标签名,你未来不想使用了,那么可以参考How to delete labels in neo4j?该链接说没有删除标签名是因为这个标签名还创建得有索引。

删除BC_Person节点索引后,该标签就不显示在标签列表里了
2删除某类节点的某个关系
假设要删除BC_Knowledge类节点的某个关系,但是你忘记具体的关系名是什么了,所以应该查看BC_Knowledge类存在哪些关系,关系名是什么。具体语句:MATCH (n:BC_Knowledge)-[r]-() RETURN r,type(r)

然后再指定要删除的具体的关系名,假如我要删除BC_Knowledge类的companyTagIs关系。语句:MATCH (n:BC_Knowledge)-[r:companyTagIs]-() DELETE r 具有删除某一个关系。注意,如果DELETE时将n也放在其后,会出问题,因为n即BC_Knowledge还存在其他关系,在你还没有删除掉BC_Knowledge的所有关系之前,是不能正确删除节点的。

作者:布口袋_天晴了
链接:https://www.jianshu.com/p/59bd829de0de
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
Neo4j删除节点和关系、彻底删除节点标签名的更多相关文章
- PowerDesigner删除外键关系,而不删除外键列[转] 及编码格式
PowerDesigner删除外键关系,而不删除外键列[转] 数据库 database -> generate database ->format 设置为utf-8 PowerDesi ...
- 【转】PowerDesigner删除外键关系,而不删除外键列
原文:https://blog.csdn.net/tomsyc/article/details/6075530 PowerDesigner中配置外键关系时,如果要删除配置的外键关系,默认设置会一同删除 ...
- PowerDesigner删除外键关系,而不删除外键列[转]
PowerDesigner中配置外键关系时,如果要删除配置的外键关系,默认设置会一同删除外键列. 要更改此设置,需在菜单栏tools中打开Model Options,在Model Settings中点 ...
- neo4j删除节点和关系
两种方法: 一.用下列 Cypher 语句: match (n) detach delete n 原理:匹配所有的节点,然后进行删除. 二. 从文件系统上删除对应的数据库. 1.停掉服务: 2.删除 ...
- [LeetCode] Delete Node in a BST 删除二叉搜索树中的节点
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...
- C#中操作xml文件(插入节点、修改、删除)
已知有一个xml文件(bookstore.xml)如下: <?xml version="1.0" encoding="gb2312"?> <b ...
- [LeetCode] 450. Delete Node in a BST 删除二叉搜索树中的节点
Given a root node reference of a BST and a key, delete the node with the given key in the BST. Retur ...
- [剑指Offer]18-题目一:删除链表的节点 题目二:删除链表中重复节点
题目一 题目 O(1)时间复杂度删除给定链表节点. 题解 用待删除节点后一个节点的值覆盖待删除节点值,更新链接关系. 注意链表只有一个节点:删除尾结点:删除头节点的处理. 代码 class ListN ...
- DOM 节点的克隆与删除
无奈的开头 关于DOM节点操作,如果仅仅是根据标准API来操作,那是最简单不过的了.但是现实中却哪有这么容易的问题让我们解决,其实不仅仅是节点的克隆与删除,节点的添加也是如此,而且添加节点需要考虑的情 ...
随机推荐
- JS对象 数组连接 concat() 方法用于连接两个或多个数组。此方法返回一个新数组,不改变原来的数组。 语法 arrayObject.concat(array1,array2,.arrayN)
concat() 方法用于连接两个或多个数组.此方法返回一个新数组,不改变原来的数组. 语法 arrayObject.concat(array1,array2,...,arrayN) 参数说明: 注意 ...
- Linux 常用命令:解压缩篇
前言 Linux常用命令中,有很多用于对文件的压缩或解压,本文将介绍这些解压缩命令中不常见却非常实用的用法. tar tar是linux中最常用的解压缩命令.tar命令可用于处理后缀名为tar,tar ...
- Java 基础 - Object.clone()深拷贝和浅拷贝
作者:YSOcean 出处:http://www.cnblogs.com/ysocean/ 本文版权归作者所有,欢迎转载,但未经作者同意不能转载,否则保留追究法律责任的权利. ---------- ...
- git 大型灾难现场
由于某种原因,需要重建git仓库.因此删了所有分支,重建git仓库. 删除整个过程 删除所有分支(除master外) git branch -d {branch_name} # 删除本地分支 git ...
- day23_2_logging
#!/usr/bin/env python# -*- coding:utf-8 -*-# ------------------------------------------------------- ...
- C#winform解析marc显示在datagridview中以及marc卡片显示
结果显示:marc显示: 卡片显示: 程序一个类: public class MARC { #region 界面上要显示的元素 public string ztm = "";//正 ...
- 左神算法进阶班1_1添加最少字符得到原字符N次
Problem: 给定一个字符串str1,只能往str1的后面添加字符变成str2. 要求1:str2必须包含两个str1,两个str1可以有重合,但是不能以同一个位置开头. 要求2:str2尽量短最 ...
- 出现java.lang.NoClassDefFoundError: org/apache/commons/collections/FastHashMap错误问题解决
首先出现这个问题,你应该是用了 BeanUtils.populate(meter,map); import org.apache.commons.beanutils.BeanUtils;并且导入了co ...
- 简单搭建dubbo
为什么要用dubbo? 当网站规模达到了一定的量级的时候,普通的MVC框架已经不能满足我们的需求,于是分布式的服务框架和流动式的架构就凸显出来了. 单一应用架构 当网站流量很小时,只需一个应用 ...
- 利用HttpWebRequest模拟提交图片
利用HttpWebRequest模拟提交图片 最近在做排量post工具, 以前做的都是提交文字 这次需要post图片过去,弄了半天终于弄好了: /// <summary> /// Post ...