docker run --name neo4j -p 7474:7474 -p 7687:7687 -d --volume=/data/apps/neo4j:/data neo4j
默认用户名密码为:neo4j/neo4j,也可通过指定参数 --env=NEO4J_AUTH=none 取消认证校验。启动成功后,文件目录结构如下:
然后通过浏览器访问:http://localhost:7474/browser/ 通过官方提供的web管理界面体验功能。
使用以下语句创建名字为 Mark 的节点
CREATE (friend:Person {name: 'Mark'})
RETURN friend
结果如下图:
接下来再创建另一个名字为 Jennifer 的节点
CREATE (j:Person {name: 'Jennifer'})
RETURN j
用下面的语句在 Mark 和 Jennifer 直接创建关系,关系名字为:IS_FRIENDS_WITH
MATCH (jennifer:Person {name: 'Jennifer'})
MATCH (mark:Person {name: 'Mark'})
CREATE (jennifer)-[rel:IS_FRIENDS_WITH]->(mark)
然后继续看看创建的关系是什么样的
MATCH (p:Person)-[r:IS_FRIENDS_WITH]->(f:Person) RETURN p,r,f
两个节点用名字为:IS_FRIENDS_WITH 的线连接起来,再看一下数据结构:
不同类型节点创建关系类似
有两种方式,结果一样
MATCH (j:Person) WHERE j.name = 'Jennifer'
RETURN j;
或
MATCH (j:Person {name: 'Jennifer'})
RETURN j;
模糊查询
模糊查询效果类似 SQL 语句中的 LIKE,在 Cypher 中使用正则:
match (p:Person) where 1=1 and p.name =~ 'Jen.*' return p
相应的 NOT LIKE 语法
match (p:Person) where 1=1 and not (p.name =~ 'Jen.*') return p
分页查询语法与 Mysql 类似,Mysql 中使用 LIMIT OFFSET 过滤结果集,Cypher 中使用 SKIP + LIMIT
MATCH (p:Person) RETURN p SKIP 0 LIMIT 3
参考:
https://hub.docker.com/_/neo4j
https://neo4j.com/developer/cypher/