neo4j图数据库,是使用browser来管理数据的。在清库之后,在左侧会出现一定的数据残余。那么,从原理上来说,这些残余的数据都是什么呢?如何直观的看到这些数据的来源呢?这些是在本文中要讨论的问题。

苏南大叔:neo4j图数据库,如何代码查看索引indexes和约束constraints? - 代码查看schema
neo4j图数据库,如何代码查看索引indexes和约束constraints?(图7-1)

大家好,这里是苏南大叔的“程序如此灵动”博客,这里记录苏南大叔和计算机代码的故事。本文讨论如何代码查看schemakeys。测试环境:win10neo4j@4.4.3

查看约束constraints

call db.constraints

苏南大叔:neo4j图数据库,如何代码查看索引indexes和约束constraints? - 外键约束
neo4j图数据库,如何代码查看索引indexes和约束constraints?(图7-2)

查看索引indexes

call db.indexes

苏南大叔:neo4j图数据库,如何代码查看索引indexes和约束constraints? - 索引列表
neo4j图数据库,如何代码查看索引indexes和约束constraints?(图7-3)

看来,约束constraints也是一种特殊的索引indexdb.indexesschema的返回结果一致。

查看schema(包括约束和索引)

:schema

schema里面包括constraintindex两部分数据,虽然和browser左侧不一一对应。但是,正是因为这些约束和索引的存在,才导致清空数据后,左侧存在数据残留。

苏南大叔:neo4j图数据库,如何代码查看索引indexes和约束constraints? - schema
neo4j图数据库,如何代码查看索引indexes和约束constraints?(图7-4)

执行语句:

call apoc.schema.assert({},{})

约束信息和btree类型的索引信息被清除,还剩余两条lookup类型的索引。

苏南大叔:neo4j图数据库,如何代码查看索引indexes和约束constraints? - schema-index
neo4j图数据库,如何代码查看索引indexes和约束constraints?(图7-5)

查看keys

这个keys就是browser左侧一直无法清除的Property Keys

call db.propertyKeys

苏南大叔:neo4j图数据库,如何代码查看索引indexes和约束constraints? - 属性值
neo4j图数据库,如何代码查看索引indexes和约束constraints?(图7-6)

使用下面的语句删除对应born属性后,(其实只在node上存在),依然在browser左侧存在。

MATCH (n) remove n.born
MATCH ()-[r]-() remove r.born

看来这样操作,并不能删除born属性,只是仅仅置空(null)而已。

match (n) return distinct n.born

苏南大叔:neo4j图数据库,如何代码查看索引indexes和约束constraints? - 尝试删除属性
neo4j图数据库,如何代码查看索引indexes和约束constraints?(图7-7)

参考文献

综述

本文并不是致力于删除这些奇怪的数据的,仅仅是致力于用表格的形式查看它们的存在。更多neo4j文章,请支持苏南大叔的博客。

如果本文对您有帮助,或者节约了您的时间,欢迎打赏瓶饮料,建立下友谊关系。
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。