GQL和Cypher

查询方面:几乎没有差异

MATCH (a {firstname: 'Avery'})-[b]->(c)
RETURN a, b, c

变长路径:有差异

例如:找到两个节点间,最多长达5跳的路径
GQL:
MATCH ((a)-[r]->(b)){1,5}
    RETURN a, r, b

Cypher:
MATCH (a)-[r*1..5]->(b)
    RETURN a, r, b

创建节点(插入节点)

Cypher使用Create或Merge关键字,GQL使用Insert关键字

插入或创建一个节点(标签为pet ,名字为unique 种类是dog)
GQL:
INSERT (:Pet {name: 'Unique', pettype: 'Dog'})

Cypher:
CREATE (:pet {name: 'unique', pettype: 'dog'})

同时也支持直接建立两个节点,然后直接建立关系。例如:

INSERT (:Person {firstname: 'Avery'
 ,lastname: 'Stare'
 ,joined: date("2022-08-23")})
 -[:LivesIn {since: date("2022-07-15")}]->
 (:City {name: 'Granville'
 ,state: 'OH'
 ,country: 'USA'})

或者直接匹配两个节点后,建立关系:

MATCH (a {firstname: 'Avery'})
     ,(d {name: 'Unique'})
INSERT (a)-[:HasPet]->(d)
    

修改属性、增加属性、删除属性,删除节点和关系都与Cypher相同

MATCH (d:Pet) where d.name="Unique"
SET d.weight_kg=26



MATCH (e {lastname: 'Stare'}) 
REMOVE e.joined

MATCH (a {firstname: 'Avery'})-[b]->(c)
DETACH DELETE a, c

新概念GRAPH TYPE:GQL支持创建固定类型图相当于一种模板,通过制定节点标签、属性、关系类型来约束图形内容。

例如:

CREATE GRAPH TYPE /MyFolder/control/fraud_TYPE // DDL
(customer:Customer => {id::STRING, name::STRING}),
(account:Account => {no::STRING, acct_type::STRING }),
(customer)-[:HOLDS]->(account),
(account)-[:TRANSFER {amount::INTEGER}]->(account)

使用以下语句创建图和图的类型。

CREATE GRAPH /MyFolder/control/fraud /* graph name is “fraud” */ 
 TYPED /MyFolder/control/fraud_TYPE /* graph type is fraud_TYPE */ 

当数据修改语句完成时,其内容必须符合图类型指定的限制。如果数据不符合图类型限制,则语句将导致异常,事务将回滚。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值