dgraph 基本查询语法 二
2018-09-24 11:13
1301 查看
这部分主要是mutation 操作,(就是增加、删除操作)
参考git 项目 https://github.com/rongfengliang/dgraph-docker-compose-deploy
schema 操作
包含以下操作:
- 添加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 格式
- 参考格式
_:myID <an_edge> "something"@en . _:myID <an_edge> "某物"@zh-Hans . json 格式 { "set": [ { "uid": "_:myID", "an_edge@en": "something", "an_edge@zh-Hans": "某物" } ] }
反向边
边是有方向的,查询不能进行反向转换,有两种方式可以进行双向查询
- 给schema 添加反向边,同时添加给所有数据
- 使用@reverse 关键字告诉dgraph 一直存储反向边
- 参考格式
boss_of: uid @reverse .
删除数据
包含三种方式删除数据
- /"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 查询
查询节点外部边的名称
参考格式: { company(func: allofterms(name, "CompanyABC")) { _predicate_ } }
expand Predicate
查询所有Predicate,类似列出所有数据
参考格式: { 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/
相关文章推荐
- dgraph 基本查询语法 三
- sql 查询基本语法
- [深入学习C#]LINQ查询表达式详解(1)——基本语法、使用扩展方法和Lambda表达式简化LINQ查询
- Oracle基本语法&&函数&&子查询&&分页查询&&排序&&集合操作&&高级分组函数
- sql 查询基本语法
- AD LDAP 基本知识及查询语法及实例
- SQL语法 之 基本查询
- SQL的查询、添加、修改、删除基本语法结构
- 多表查询基本语法
- 基本 MDX 查询 ( MDX 语法 教程 )
- Hibernate 查询语句HQL基本语法
- 基本 MDX 查询 ( MDX 语法 教程 )
- Oracle基本查询语法-多表查询和子查询和集合运算
- mysql 连接查询的基本语法
- MySQL 基本查询语法使用
- Oracle数据库Sql语句详解之SELECT查询基本语法
- 基本 MDX 查询 ( MDX 语法 教程 )
- Oracle基本语法查询语句
- SQL Server 数据库子查询基本语法
- HBERNATE查询语句(HQL)基本语法