当前位置: 首页 > news >正文

Dgraph 入门教程二《 快速开始》

1、Clound 云

云地址:Dgraph Cloud

登录Clound 云后,可以用云上的东西操作,可以用谷歌账号或者github账号登录。

启动云

(1)在云控制台,点击 Launch new backend.

(2)选择计划,云 provider和区域。

(3)clound云命名

(4)新的clound 云被创建,直接使用。

2、创建Schema

Schema 类似数据库的表设计,设计好一个好的Schema是一个好的图数据库的关键。下面用官方的例子做个演示。设计一个产品Product,用户Customer和评价Review 三个对象。其中product 有三个属性,productID,name和reviews,Customer 有两个属性 username和reviews。review有五个属性,id,about,by,comment和reting。其中Product的reviews 的属性只是Product 与Review的about属性有关联,Customer同样。属性冒号后面表示的是属性类型,其他参数表示查询限制条件。

type Product {productID: ID!name: String @search(by: [term])reviews: [Review] @hasInverse(field: about)
}type Customer {username: String! @id @search(by: [hash, regexp])reviews: [Review] @hasInverse(field: by)
}type Review {id: ID!about: Product!by: Customer!comment: String @search(by: [fulltext])rating: Int @search
}

把这个代码放到云Schema 里面,点击发布 Deploy

3、选择自己的前端测试工具

除了前章介绍的GraphQL,还有以下常用的几种。

 GraphQL Playground, Insomnia, GraphiQL, Altair or Postman。

我自己先下载了Altair工具,可以根据喜好下载。

4、添加数据

(1)添加Product和Customer数据。

数据添加是通过mutation。用下面的代码添加,添加后点击运行。

mutation {addProduct(input: [{ name: "GraphQL on Dgraph" }{ name: "Dgraph: The GraphQL Database" }]) {product {productIDname}}addCustomer(input: [{ username: "Michael" }]) {customer {username}}
}

运行后得到如下数据:

{"data": {"addProduct": {"product": [{"productID": "0x2","name": "GraphQL on Dgraph"},{"productID": "0x3","name": "Dgraph: The GraphQL Database"}]},"addCustomer": {"customer": [{"username": "Michael"}]}},"extensions": {"requestID": "b155867e-4241-4cfb-a564-802f2d3808a6"}
}

(2)添加Review

用下面的语句添加,注意这里productID 要参照上面product自动生成的id 不一定叫"0x2"

{"data": {"addProduct": {"product": [{"productID": "0x2","name": "GraphQL on Dgraph"},{"productID": "0x3","name": "Dgraph: The GraphQL Database"}]},"addCustomer": {"customer": [{"username": "Michael"}]}},"extensions": {"requestID": "b155867e-4241-4cfb-a564-802f2d3808a6"}
}

点击运行得到如下数据,

{"data": {"addProduct": {"product": [{"productID": "0x2","name": "GraphQL on Dgraph"},{"productID": "0x3","name": "Dgraph: The GraphQL Database"}]},"addCustomer": {"customer": [{"username": "Michael"}]}},"extensions": {"requestID": "b155867e-4241-4cfb-a564-802f2d3808a6"}
}

5、查询数据

(1)根据评价字段查询

query {queryReview(filter: { comment: {alloftext: "easy to install"}}) {commentby {username}about {name}}
}

(2)还可以根据评价文字和评分一起查

query {queryReview(filter: { comment: {alloftext: "easy to install"}}) {commentby {username}about {name}}
}

(3)还可以正则查和排序

query {queryCustomer(filter: { username: { regexp: "/Mich.*/" } }) {usernamereviews(order: { asc: rating }, first: 5) {commentratingabout {name}}}
}

可以放进去自己看看效果,这里就不粘贴了。

http://www.lryc.cn/news/312029.html

相关文章:

  • 文件上传{session文件包含以及条件竞争、图片文件渲染绕过(gif、png、jpg)}
  • 【论文精读】Mask R-CNN
  • vue + js 项目打包JS、CSS文件自动部署到oss
  • CSS:让动画流畅生动的缓动函数
  • 蓝桥杯集训·每日一题2024 (差分)
  • 嵌入式通信数据经常说的大端和小端模式(学习)
  • bun 单元测试
  • 阿里云2核4G服务器支持多少人同时在线?
  • 浏览器发出一个请求到收到响应步骤详解
  • 121. 买卖股票的最佳时机【leetcode】/动态规划
  • K8S Service相关概念
  • 小米消金剖析“冒充老板”诈骗案例,呼吁群众提高反诈意识
  • 全量知识系统问题及SmartChat给出的答复 之14 解析器+DDD+文法型 之2
  • 蓝桥杯备赛 day2 | 4. 付账问题 5. 数字三角形
  • 2024关于idea激活码报This license xxxx has been suspended
  • Android9-W517-使用NotificationListenerService监听通知
  • git的“You can‘t push commits with committe“解决方法
  • CAN总线的拓扑类型和CAN收发器(原理讲解)
  • 如何实现WordPress后台显示文章、分类目录、标签等的ID?
  • 【GB28181】SIP协议实践之Windows下VS2019编译eXosip、osip,测试(附工程源码,一键打开编译)
  • GPT提示语格式——个人自用
  • MCU最小系统电路设计(以STM32F103C8T6为例)
  • [JavaWeb学习日记]JSP+Cookie+Filter与登录+CRUD案例
  • Ruby网络爬虫教程:从入门到精通下载图片
  • 各中间件性能、优缺点对比
  • 修改表中某个字段等于另一个字段减去 2 小时的 SQL
  • Jetpack Compose: Hello Android
  • 蓝桥每日一题 (差分)3月3号
  • Mybatis和Spring Data Jpa的优缺点比较(八股文)
  • LeetCode买卖股票的最佳时机