Neo4j只读查询结构

2017-12-12  本文已影响0人  松爱家的小秦

1.MATCH WHERE RETURN返回一个完整的图数据

MATCH p=()-[r:LOVES]->() RETURN p LIMIT 25

MATCH (a)-[:KNOWS]->(b) RETURN b

a知道b

MATCH (a)-[:KNOWS]->(b) RETURN b.name

b.name

"Jim"

"Anna"

"Sally"

"Sally"

"Bob"

"Mike"

"Mike"

"Billy"

"b"

2.WHERE实现条件过滤

MATCH p=(n:Person)-[:LOVES]->() WHERE n.name <> "a" RETURN p

查询节点n的属性name不等于a的所有节点

3.联合查询UNION

MATCH (a)-[:KNOWS]->(b) RETURN b.name UNION MATCH (a)-[:LOVES]->(b) return b.name

使用关键字UNION可以将两个查询的结果联合起来

MATCH (a)-[:KNOWS]->(b) RETURN b UNION MATCH (a)-[:LOVES]->(b) return b

4.使用WITH

with可以将上一条查询语句的结果连接起来,用于下一个查询语句中。

MATCH (a)-[:KNOWS]->(b) WITH a,count(b) AS knows WHERE knows > 0 RETURN a

5.使用Return语句

MATCH (n:Person) RETURN DISTINCT n as test ORDER BY test.name DESC

"test" │

╞═════════════════════════════════════════════╡

│{"name":"d"}                                │

├─────────────────────────────────────────────┤

│{"name":"c"}                                │

├─────────────────────────────────────────────┤

│{"name":"c"}                                │

├─────────────────────────────────────────────┤

│{"name":"b"}                                │

├─────────────────────────────────────────────┤

│{"name":"a"}                                │

├─────────────────────────────────────────────┤

│{"name":"Zach Grenier","born":1954}          │

├─────────────────────────────────────────────┤

│{"name":"Wil Wheaton","born":1972}          │

├─────────────────────────────────────────────┤

│{"name":"Werner Herzog","born":1942}        │

├─────────────────────────────────────────────┤

│{"name":"Vincent Ward","born":1956}          │

├─────────────────────────────────────────────┤

│{"name":"Victor Garber","born":1949}        │

├─────────────────────────────────────────────┤

│{"name":"Val Kilmer","born":1959}            │

├─────────────────────────────────────────────┤

│{"name":"Tony Scott","born":1944}            │

MATCH (n:Person) RETURN n as Person SKIP 2 LIMIT 2

SKIP和LIMIT对查询结果进行分页

6.使用case子句

MATCH (n:Person)RETURN

CASE n.name

WHEN "Hugo Weaving" THEN 1

WHEN "Wil Wheaton" THEN 2

ELSE 3

END as test

这个语句是表示对图里的数据进行遍历,名字叫Hugo Weaving打印1 名字叫Wil Wheaton打印2

否则打印3

输出

╒══════╕

│"test"│

╞══════╡

│3    │

├──────┤

│3    │

├──────┤

│3    │

├──────┤

│1    │

├──────┤

│3    │

├──────┤

│3    │

├──────┤

│3    │

├──────┤

│3    │

├──────┤

│3    │

├──────┤

│3    │

├──────┤.....

上一篇 下一篇

猜你喜欢

热点阅读