Neo4J 使用

360 阅读1分钟

公司最近想要做一个知识图谱的功能,有节点,关系,其实这个从数据结构上来说就是图,而我们就需要一个支持图结构的数据库。 先上一个图看一下吧

image.png

Neo4j的命令使用

节点:

查询所有节点:
MATCH (n) RETURN n

删除所有节点:
MATCH (n) detach delete n

根据id查询节点:
MATCH (n) WHERE id(n)=251 RETURN n

模糊查询:
MATCH (n) WHERE id(n)<>5 and n.name =~ '.*安.*' RETURN n

添加节点:
CREATE (n:作家 {name:'鲁迅'}) RETURN n;

根据节点id 删除节点及其所有关系:
MATCH (n) WHERE id(n)=251 detach delete n

修改节点类型和节点属性:
match (b) where id(b)= 9 set b:作家, b.name = 'Kevinnn' return b

关系:

根据类型获取节点的所有关系:
MATCH (c:作家) WITH c OPTIONAL MATCH (c)-[r]-() RETURN c, r

添加关系:
match (a),(b) where id(a)=9 and id(b)=5 merge (a) -[:test] -> (b)

根据id删除某个关系:
match(a)-[r]-(b) where id(r)=1103 delete r

根据id查找从该id出发的所有关系

MATCH (c)-[r]->(d) where id(c) = 5 RETURN r

删除从 c 开始的所有关系:

MATCH (c)-[r]->(d) where id(c) = 9 delete r