Neo4j入门指南
1、简介
Neo4j是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎具有成熟数据库的所有特性。程序员工作在一个面向对象的、灵活的网络结构下而不是严格、静态的表中——但是他们可以享受到具备完全的事务特性、企业级的数据库的所有好处。
2、特点
- 对象关系的不匹配使得把面向对象的“圆的对象”挤到面向关系的“方的表”中是那么的困难和费劲,而这一切是可以避免的。
- 关系模型静态、刚性、不灵活的本质使得改变schemas以满足不断变化的业务需求是非常困难的。由于同样的原因,当开发小组想应用敏捷软件开发时,数据库经常拖后腿。
- 关系模型很不适合表达半结构化的数据——而业界的分析家和研究者都认为半结构化数据是信息管理中的下一个重头戏。
- 网络是一种非常高效的数据存储结构。人脑是一个巨大的网络,万维网也同样构造成网状,这些都不是巧合。关系模型可以表达面向网络的数据,但是在遍历网络并抽取信息的能力上关系模型是非常弱的。
3、安装
从Docker Hub上pull一个Neo4j的镜像
docker pull neo4j
启动一个Neo4j的容器, 在Home目录下建立一个/neo4j/data文件夹用于存放数据
docker run -d
--name neo4j
--publish=7474:7474
--publish=7687:7687
--volume=$HOME/neo4j/data:/data
neo4j
在浏览器中访问 http://ipaddress:7474 可以看到如下的UI界面,输入默认用户名和密码neo4j即可连接到neo4j数据库。
4、基础操作
Neo4j使用Cypher语法操作数据库,CRUD示例
创建节点
CREATE (e:Country{
name:"中国"})
CREATE (e1:Country{
name:"美国"})
CREATE (c:Company{
name:"腾讯",createtime:"2000-12-20"})
CREATE (c1:Company{
name:"苹果",createtime:"2002-07-08"})
CREATE (c2:Company{
name:"阿里",createtime:"2004-12-20"})
CREATE (c3:Company{
name:"美团",createtime:"2010-12-20"})
CREATE (c4:Company{
name:"亚马逊",createtime:"2007-07-08"})
创建关系
MATCH (e:Country) WHERE e.name="中国" MATCH (c:Compa