图数据库 简介

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lifestxx/article/details/84380475

neo4j

tinkerpop:Apache

geabase:阿里

简单使用neo4j:

下载安装。概念:

 (1)Nodes(节点)

 (2)Relationships(关系)

(3) Properties(属性)

(4) Labels(标签)

(5) Traversal(遍历)

(6) Paths(路径)

扫描二维码关注公众号,回复: 5323918 查看本文章

(7) Schema(模式,类似存储数据的结构)

Indexes(索引)

Constraints(约束)

demo使用:

查询,更新

新增节点:


CREATE (n:Person { name: 'Hi', title: 'Developer' }) return n;

CREATE (n:Person { name: 'Hello', title: 'Developer' }) return n;

CREATE (n:Person { name: 'Hi-2', title: 'Developer' }) return n;

CREATE (n:Person { name: 'Hello-2', title: 'Developer' }) return n;

CREATE (n:Person { name: 'Vic', title: 'Developer' }) return n;

CREATE (n:Person { name: 'Andres', title: 'Developer' }) return n;

match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)<-[r:Friend]-(m) return r;
match(n:Person{name:"Andres"}),(m:Person{name:"Vic"}) create (n)<-[r:Friend]-(m) return r;
match(n:Person{name:"Hello"}),(m:Person{name:"Vic"}) create (n)<-[r:Friend]-(m) return r;
match(n:Person{name:"Hi"}),(m:Person{name:"Hello"}) create (n)<-[r:Friend]-(m) return r;
match(n:Person{name:"Vic"}),(m:Person{name:"Andres"}) create (n)<-[r:Friend]-(m) return r;

MATCH (n)-[:Friend* ..3]->(r)
return count(n)

MATCH (n)-[* 1..3]->(r)
return n

MATCH ret=(n)-[:Friend* ..3]->(r) return ret

相互为朋友的:Error
MATCH (n)-[:Friend* ..3]->(r)
and    (r)-[:Friend* ..3]->(n)  return n


MATCH (n)-[:Friend* ..3]->(r)
where   (r)-[:Friend* ..3]->(n)  return n

MATCH p=shortestPath(
  (bacon:Person {name:"Hello"})-[*]-(meg:Person {name:"Vic"})
)
RETURN p

MATCH (n)-[:Friend]->(r)
return max(length(n.name)) as cnt

MATCH (n)-[:Friend]->(r)
with max(length(n.name)) as cnt
match(n)-[:Friend]->(x) where length(n.name)=cnt return n,x

安装tinkerpop

apache 下载apache-tinkerpop-gremlin-console-3.3.4-bin.zip 

解压,命令行执行./gremlin.sh 小鬼开始了..

gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin>  g.V().filter(label().is('person'))
==>v[1]
==>v[2]
==>v[4]
==>v[6]
gremlin> g.V(1).out().map(values('name'))
==>lop
==>vadas
==>josh
gremlin> g.V().hasLabel('person').sideEffect(System.out.&println)
v[1]
==>v[1]
v[2]
==>v[2]
v[4]
==>v[4]
v[6]
==>v[6]
gremlin>  g.V().branch(values('name')).
......1>                option('marko', values('age')).
......2>                option(none, values('name'))
==>29
==>vadas
==>lop
==>josh
==>ripple
==>peter
gremlin> g.V().out('created').hasNext()
==>true
gremlin>  g.V().out('created').next()
==>v[3]
gremlin>  g.V().out('created').next(2)
==>v[3]
==>v[5]
gremlin>  g.V().out('created').next(2)
==>v[3]
==>v[5]
gremlin>  g.V(1).as('a').out('created').in('created').where(neq('a')).
......1>            addE('co-developer').from('a').property('year',2009)
==>e[13][1-co-developer->4]
==>e[14][1-co-developer->6]
gremlin>

猜你喜欢

转载自blog.csdn.net/lifestxx/article/details/84380475