Neo4j语句样例

 传统数据库一行就是neo4j数据库的一个节点。

  传统数据库的一个表就是neo4j 的一个标签名。

1、

 

All Nodes Query

MATCH (n)

RETURN n;

2、Returning a Property

  1. MATCH (person)-->()

  2. RETURN person.name

3、

  1. MATCH (tom:Person)

  2. WHERE tom.name = "Tom Hanks"

  3. RETURN tom;

4、

  1. MATCH (movie:Movie)

  2. WHERE movie.title="Mystic River"

  3. SET movie.released = 2003

  4. RETURN movie;

5、

  1. MATCH (me:Person), (movie:Movie)

  2. WHERE me.name="My Name" AND

  3. movie.title="Mystic River"

  4. CREATE (me)-[:REVIEWED {rating:80, summary:"tragic character movie"}]->(movie);

acted_in = (:Person)-[:ACTED_IN]->(:Movie)

6、

MERGE (m:Movie { title:"Cloud Atlas" }) ON CREATE SET m.released = 2012 RETURN m

 

7、输出:(as后面是列名,输出的结果命一个名s)

MATCH (p:Person) 

RETURN p, p.name AS name, upper(p.name), coalesce(p.nickname,"n/a") AS nickname, { name: p.name,   label:head(labels(p))} AS person

8、union语句

MATCH (actor:Person)-[r:ACTED_IN]->(movie:Movie) RETURN actor.name AS name, type(r) AS acted_in, movie.title AS title UNION

MATCH (director:Person)-[r:DIRECTED]->(movie:Movie) RETURN director.name AS name, type(r) AS acted_in, movie.title AS title

9、限制条件

MATCH (user)-[:friend]->(follower) WHERE user.name IN ['Joe', 'John', 'Sara', 'Maria', 'Steve'] AND follower.name =~ 'S.*' 

RETURN user.name, follower.name

 

10、Single shortest path

MATCH (martin:Person { name:"Martin Sheen" }),(oliver:Person { name:"Oliver Stone" }), p = shortestPath((martin)-[*..15]-(oliver)) RETURN p

 

11、All shortest paths

MATCH (martin:Person { name:"Martin Sheen" }),(michael:Person { name:"Michael Douglas" }), p = allShortestPaths((martin)-[*]-(michael)) RETURN p

 

12、Relationship by id

1)MATCH ()-[r]->() WHERE id(r)= 0 RETURN r 

2)MATCH (n) WHERE id(n) IN [0,3,5] RETURN n 

13

match (a:Entity{name:"山东省财金投资有限公司"})-[*1]->(b)  return a, b

(a)-[*3..]->(b)

(a)-[*..5]->(b)

(a)-[*]->(b) 

 

MATCH (me)-[:KNOWS*1..2]-(remote_friend) WHERE me.name = "Filipa" RETURN remote_friend.name

 

14  Order by 

MATCH (n) RETURN n ORDER BY n.name 

 

RETURN [x IN range(0,10) WHERE x % 2 = 0] AS result

 

15 limit

MATCH (n) RETURN n ORDER BY n.name LIMIT 3 

 

16 skip(从三开始输出)

MATCH (n) RETURN n ORDER BY n.name SKIP 3 

 

MATCH (n) WITH n ORDER BY n.name DESC LIMIT 3 RETURN collect(n.name)

 

Query MATCH (david { name: "David" })--(otherPerson)-->() WITH otherPerson, count(*) AS foaf WHERE foaf > 1 RETURN otherPerson 

 

17Combine two queries

MATCH (n:Actor) RETURN n.name AS name

 UNION ALL 

MATCH (n:Movie) RETURN n.title AS name 

 

18   Combine two queries and remove duplicates

MATCH (n:Actor) RETURN n.name AS name 

UNION

 MATCH (n:Movie) RETURN n.title AS name 

 

19 Matching on a bound relationship

 

MATCH (a)-[r]-(b) WHERE id(r)= 0 RETURN a,b

 

20 Single shortest path

MATCH (martin:Person { name:"Martin Sheen" }),(oliver:Person { name:"Oliver Stone" }), p = shortestPath((martin)-[*..15]-(oliver))

RETURN p

 

21  All shortest paths

MATCH (martin:Person { name:"Martin Sheen" }),(michael:Person { name:"Michael Douglas" }), p = allShortestPaths((martin)-[*]-(michael)) RETURN p 

 

22  Multiple nodes by id

MATCH (n) WHERE id(n) IN [0,3,5] RETURN n 

 

23  Properties on optional elements

MATCH (a:Movie { title: 'Wall Street' }) OPTIONAL MATCH (a)-->(x) RETURN x, x.name 

 

24

MATCH (n) WHERE n.age < 30 RETURN n 

 

25 exists

MATCH (n) WHERE exists(n.belt) RETURN n 

MATCH (n) WHERE n.name STARTS WITH 'Pet' RETURN n 

 

26 ENDS WITH

MATCH (n) WHERE n.name ENDS WITH 'ter' RETURN n 

 

27CONTAINS

MATCH (n) WHERE n.name CONTAINS 'ete' RETURN n 

 

28 =~ "regexp"

MATCH (n) WHERE n.name =~ 'Tob.*' RETURN n

 

29  Using path patterns in WHERE

MATCH (tobias { name: 'Tobias' }),(others) WHERE others.name IN ['Andres', 'Peter'] AND (tobias)<--(others) RETURN others 

 

30 Filter on patterns using NOT

MATCH (persons),(peter { name: 'Peter' })

WHERE NOT (persons)-->(peter) 

RETURN persons

 

31

MATCH (n)-[r]->() WHERE n.name='Andres' AND type(r)=~ 'K.*' RETURN r

 

32 in

MATCH (a) WHERE a.name IN ["Peter", "Tobias"] RETURN a

 

33

START n=node:nodes(name = "A") RETURN n 

   | Node[0]{name:"A"} 

 

33 avg

MATCH (n:Person) RETURN avg(n.property)

 

34 The 40th percentile of the values in the property property is returned by the example query, calculated with a weighted average.

 

MATCH (n:Person) RETURN percentileCont(n.property, 0.4) 

 

35  Import data from a CSV file

LOAD CSV FROM 'http://neo4j.com/docs/3.0.1/csv/artists.csv' AS line CREATE (:Artist { name: line[1], year: toInt(line[2])})   

 

36删除所有节点: 

 

match (n:Entity) -[f]-(p:Entity)  delete f,n,p 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值