這部分主要是mutation 操做,(就是增長、刪除操做)git
參考git 項目 https://github.com/rongfengliang/dgraph-docker-compose-deploygithub
schema 操做
包含如下操做:docker
- 添加schema
- 修改schema(添加索引)
參考操做 industry: string @index(term) . boss_of: uid .
添加數據
- 說明
dgraph 會給每一個導入的數據添加一個內部id,同時也能夠使用json 格式
參考格式: { set { _:company1 <name> "CompanyABC" . _:company2 <name> "The other company" . _:company1 <industry> "Machinery" . _:company2 <industry> "High Tech" . _:jack <works_for> _:company1 . _:ivy <works_for> _:company1 . _:zoe <works_for> _:company1 . _:jose <works_for> _:company2 . _:alexei <works_for> _:company2 . _:ivy <boss_of> _:jack . _:alexei <boss_of> _:jose . } } json 格式: { "set": [ { "uid": "_:company1", "industry": "Machinery", "name": "CompanyABC" }, { "uid": "_:company2", "industry": "High Tech", "name": "The other company" }, { "uid": "_:jack", "works_for": { "uid": "_:company1"}, "name": "Jack" }, { "uid": "_:ivy", "works_for": { "uid": "_:company1"}, "boss_of": { "uid": "_:jack"}, "name": "Ivy" }, { "uid": "_:zoe", "works_for": { "uid": "_:company1"}, "name": "Zoe" }, { "uid": "_:jose", "works_for": { "uid": "_:company2"}, "name": "Jose" }, { "uid": "_:alexei", "works_for": { "uid": "_:company2"}, "boss_of": { "uid": "_:jose"}, "name": "Alexei" } ] }
- 外部id 說明
dgraph 當前不支持外部id,可選的方式是將惟一標示作爲數據的邊(edge)
語言支持
能夠使用語言標籤進行不一樣語言的區分,格式 @lang ,支持使用json 格式json
- 參考格式
_:myID <an_edge> "something"@en . _:myID <an_edge> "某物"@zh-Hans . json 格式 { "set": [ { "uid": "_:myID", "an_edge@en": "something", "an_edge@zh-Hans": "某物" } ] }
反向邊
邊是有方向的,查詢不能進行反向轉換,有兩種方式能夠進行雙向查詢ui
- 給schema 添加反向邊,同時添加給全部數據
- 使用@reverse 關鍵字告訴dgraph 一直存儲反向邊
- 參考格式
boss_of: uid @reverse .
刪除數據
包含三種方式刪除數據url
- /"value" . 刪除單個三元組
- * . 刪除指定邊的全部三元組
- * * . 刪除指定節點的三元組
json 格式 刪除節點關聯數據: { "delete": [ { "uid": "0xa" } ] } 刪除邊的三原則(不刪除子節點數據): { "delete": [ { "uid": "0xa", "friends": null } ] } 刪除關係以及子節點數據 { "delete": [ { "uid": "0x2", # Answer UID. "comment": { "uid": "0x3" # Comment. } }, { "uid": "0x3" #Comment final delation, cleaning the Answer's child. } ] }
Predicate 查詢
查詢節點外部邊的名稱spa
參考格式: { company(func: allofterms(name, "CompanyABC")) { _predicate_ } }
expand Predicate
查詢全部Predicate,相似列出全部數據.net
參考格式: { expand(func: allofterms(name, "Michael")) { expand(_all_) { expand(_all_) { expand(_all_) } } } }
參考資料
https://github.com/rongfengliang/dgraph-docker-compose-deploy
https://tour.dgraph.io/schema/1/code