博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dgraph实现基本操作
阅读量:4588 次
发布时间:2019-06-09

本文共 2048 字,大约阅读时间需要 6 分钟。

dgraph实现基本操作

简单介绍

dgraph 是一个分布式图数据库

为一个突变, 一般认为添加数据或者是删除数据为一个突变

为一个查询

创建基础数据库

{set {_:wangha 
"wangha" ._:wangha
"17" ._:wangha
"China" ._:wangha
"wangha" ._:wangha
"王哈" ._:wangha
"王ハ" ._:wangha
_:cyc ._:wangha
_:xhe ._:cyc
"chenchao" ._:cyc
"18" ._:cyc
"China" ._:cyc
"ChaoChen" ._:cyc
"陈超" ._:xhe
"xhe" ._:xhe
"18" ._:xhe
"Japan" ._:xhe
"x鹤" ._:cxy
"changyang" ._:cxy
"19" ._:cxy
"England" ._:cxy
"常飏" ._:cxy
_:ttfq ._:ttfq
"yetao" ._:ttfq
"18" ._:ttfq
"Russian" ._:ttfq
"TaoYe" ._:ttfq
"叶掏" ._:ttfq
_:xhe .}}

1599320-20190303214823517-994536166.png

看到右边出现Done. 说明添加完成

由于此处, 我使用的是http客户端, 需要自己设置表的一些属性, goClient等可代码实现.

设置在Schema中, 设置如下:

1599320-20190303214844514-2009875754.png

在默认的时候, 各元素都为default, 需要全部自己修改为string类型,并且设置index(索引), 在dgraph中, 只有被设置为索引的元素才可被查询.

查询

dgraph提供了丰富的query语句, 可见

此处我们假设查询有关于username="wangha"的各种信息.

{  aboutme(func:eq(usernameOFen,"wangha")){    uid    name    usernameOFcn    usernameOFen    usernameOFjp  }}

得到结果如下:

1599320-20190303214906707-89001504.png

其实还有更加简单的办法, 用于查询信息.

{  aboutme(func:eq(usernameOFen,"wangha")){    expand(_all_)  }}

添加节点

此时, 又进入了一位新朋友 yaodao , 我需要将他加入数据库, 而且他存在 < friend > 为 **:wangha** , 那么此时, 我需要首先获得 :wangha 的uid , 随后将其加入数据库

获取wangha的uid

{  wanghauid(func:eq(usernameOFen,"wangha")){    uid  }}

得到wangha的uid为 "uid": "0x2"

将新朋友的数据插入

{set {_:yaodao 
"yaozhao" ._:yaodao
"24" ._:yaodao
"M78Star" ._:yaodao
"ZhaoYao" ._:yaodao
"姚X" ._:yaodao
"姚飞机" ._:yaodao
<0x2> .}}

当然, 可以使用别的方式, 比方说:

  1. 将yaodao的信息插入
  2. 获取yaodao的uid
  3. 插入<yaodao的uid> <friend> <wangha的uid>

此时, 可以查看yaodao的朋友

{  yaodaofriends(func:eq(name,"yaozhao")){    friend{      uid      name      usernameOFcn    }  }}

结果如下:

1599320-20190303214927145-1283560015.png

更新数据

比如此时yaodao的数据有错, age应该为22

查询yaodao的uid

{  yaodaofriends(func:eq(name,"yaozhao")){    uid  }}

得到结果: "uid": "0x10"

更新数据

{set {<0x10> 
"22" .}}

验证看看结果:

1599320-20190303214946268-1521872190.png

没有任何问题.

删除

比如, 此时, yaodao强烈要求我删除他的数据.

所以, 没办法了...

{delete {<0x10> * * .}}

此时, 我再回去query

1599320-20190303215005637-661421224.png

发现除了uid, 其他所有的数据已经没了

转载于:https://www.cnblogs.com/wangha/p/10467915.html

你可能感兴趣的文章
基于用户的协同过滤(UserCF)
查看>>
运行Storm实例
查看>>
MapReduce各个执行阶段
查看>>
Shuffle过程详解
查看>>
微软云数据库SQL Azure
查看>>
Amazon DynamoDB
查看>>
云数据库概念
查看>>
云数据库与其他数据库的关系
查看>>
HBase 表和Region
查看>>
HBase功能组件
查看>>
UMP系统架构 RabbitMQ
查看>>
UMP系统架构 Mnesia
查看>>
UMP系统架构 Controller服务器
查看>>
UMP系统架构 Zookeeper
查看>>
HBase+Redis
查看>>
UMP系统架构 LVS
查看>>
Store工作原理
查看>>
HBase Ambari
查看>>
HLog工作原理
查看>>
构建HBase二级索引
查看>>