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}}}
}
可以放进去自己看看效果,这里就不粘贴了。
相关文章:

Dgraph 入门教程二《 快速开始》
1、Clound 云 云地址:Dgraph Cloud 登录Clound 云后,可以用云上的东西操作,可以用谷歌账号或者github账号登录。 启动云 (1)在云控制台,点击 Launch new backend. (2)选择计划&…...

文件上传{session文件包含以及条件竞争、图片文件渲染绕过(gif、png、jpg)}
session文件包含以及条件竞争 条件: 知道session文件存储在哪里 一般的默认位置: /var/lib/php/sess_PHPSESSID /var/lib/php/sessions/sess_PHPSESSID /tmp/sess_PHPSESSID /tmp/sessions/sess_PHPSESSID ####在没做过设置的情况下一般都是存储在/var…...

【论文精读】Mask R-CNN
摘要 基于Faster RCNN,做出如下改变: 添加了用于预测每个感兴趣区域(RoI)上的分割掩码分支,与用于分类和边界框回归的分支并行。mask分支是一个应用于每个RoI的FCN,以像素到像素的方式预测分割掩码,只增加了很小的计…...
vue + js 项目打包JS、CSS文件自动部署到oss
一、下载oss依赖 npm install webpack-aliyun-oss 或 yarn add webpack-aliyun-oss 二、在vue.config.js中配置文件 const WebpackAliyunOss require("webpack-aliyun-oss");let VUE_APP_BUCKET "xxx"; let VUE_APP_REGION "xx-xxx-xxx";m…...
CSS:让动画流畅生动的缓动函数
在CSS中,可以使用transition属性或者keyframes关键帧动画来创建动画效果。 使用缓动函数则可以让动画更加流畅和生动。 div {transition: <property> <duration> <timing-function> <delay>; }div {animation: <keyframes-name> &l…...

蓝桥杯集训·每日一题2024 (差分)
前言: 差分笔记以前就做了,在这我就不再写一遍了,直接上例题。 例题: #include<bits/stdc.h> using namespace std; int a[10009],b[100009]; int main(){int n,ans10,ans20;cin>>n;for(int i1;i<n;i){cin>>…...
嵌入式通信数据经常说的大端和小端模式(学习)
一.概念 大端模式(Big-endian):高位字节排放在内存的低地址端,低位字节排放在内存的高地址端,即正序排列,高尾端; 小端模式(Little-endian):低位字节排放在…...

bun 单元测试
bun test Bun 附带了一个快速、内置、兼容 Jest 的测试运行程序。测试使用 Bun 运行时执行,并支持以下功能。 TypeScript 和 JSX生命周期 hooks快照测试UI 和 DOM 测试使用 --watch 的监视模式使用 --preload 预加载脚本 Bun 旨在与 Jest 兼容,但并非所…...

阿里云2核4G服务器支持多少人同时在线?
2核4G服务器支持多少人在线?阿里云服务器网账号下的2核4G服务器支持20人同时在线访问,然而应用不同、类型不同、程序效率不同实际并发数也不同,2核4G服务器的在线访问人数取决于多个变量因素: 2核4G:2核CPU和4G内存对…...

浏览器发出一个请求到收到响应步骤详解
前言 在网络通信中,浏览器向Web服务器发送HTTP请求消息的过程是一个复杂而精密的环节,涉及到URL解析、DNS解析、数据拆分、路由表规则和MAC头部添加等一系列步骤。本文将深入探讨这一过程的每个环节,帮助读者更全面地了解浏览器与Web服务器之…...
121. 买卖股票的最佳时机【leetcode】/动态规划
121. 买卖股票的最佳时机 给定一个数组 prices ,它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票,并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…...
K8S Service相关概念
Service基本概念 K8S Service是K8S实现微服务架构最重要的组件之一,主要作用:1)为Pod提供稳定的访问地址(域名或IP),2)实现负责均衡,3)自动屏蔽后端Endpoints的变化。 …...
小米消金剖析“冒充老板”诈骗案例,呼吁群众提高反诈意识
近年来,诈骗手段日益翻新,冒充公司老板身份进行诈骗的案例屡见不鲜。不法分子利用人们的焦虑心理,以冒充老板的身份进行诈骗,给无数工作人员和企业带来了巨大的经济损失。重庆小米消费金融有限公司(以下简称“小米消金…...
全量知识系统问题及SmartChat给出的答复 之14 解析器+DDD+文法型 之2
Q36. 知识系统中设计的三种文法解析器和设计模式之间的关系 进一步,我想将 知识系统中设计的三种语言(形式语言、人工语言和自然)的文法解析器和DDD中的三种程序类型(领域模型、领域实体和领域服务) 形式语言文法 我…...

蓝桥杯备赛 day2 | 4. 付账问题 5. 数字三角形
付账问题,关键是要了解整型的范围,确定获取输入数据的变量类型 需要注意的是int的十进制范围-32768 ~ 32767,那么我们可以知道,人数n是可以用int来装的,需付款数S应该是long long,获取的每个人初始钱数也应…...

2024关于idea激活码报This license xxxx has been suspended
HOSTS文件中增加 0.0.0.0 www.jetbrains.com 0.0.0.0 account.jetbrains.com 然后...

Android9-W517-使用NotificationListenerService监听通知
目录 一、前言 二、前提 三、方案 方案一 方案二 方案三 方案四 方案五 方案六 方案七 四、关于NotificationListenerService类头注释 五、结论 一、前言 NotificationListenerService可以让应用监听所有通知,但是无法获得监听通知的权限,如…...
git的“You can‘t push commits with committe“解决方法
如果使用错误的用户和邮箱执行了git提交,在执行 git push 时将遇到如下错误: ! [remote rejected] feature_116390305_story_0 -> feature_116390305_story_0 (You cant push commits with committer ‘yijian’ or email eyjianqq.com who is not ex…...

CAN总线的拓扑类型和CAN收发器(原理讲解)
1:CAN收发器(原理讲解) 从原理上来讲CAN_H拉升电压,或CAN_L拉低电压的原理。 以上是TJA1145AT的俯瞰图,此芯片是NXP比较先进的CAN收发器,带SPI总线系统。 回到正题,CAN_H和CAN_L收发器是通过内…...

如何实现WordPress后台显示文章、分类目录、标签等的ID?
我们平时在使用WordPress的过程中,偶尔需要用到文章的ID,或分类目录ID,或标签ID,或媒体库ID,或评论ID,或用户ID等,但是WordPress后台默认是不显示它们的ID的。 今天boke112百科就跟大家分享如何…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...

Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...

dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
工程地质软件市场:发展现状、趋势与策略建议
一、引言 在工程建设领域,准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具,正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...
【算法训练营Day07】字符串part1
文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接:344. 反转字符串 双指针法,两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
Spring AI 入门:Java 开发者的生成式 AI 实践之路
一、Spring AI 简介 在人工智能技术快速迭代的今天,Spring AI 作为 Spring 生态系统的新生力量,正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务(如 OpenAI、Anthropic)的无缝对接&…...

MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...

AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案
这个问题我看其他博主也写了,要么要会员、要么写的乱七八糟。这里我整理一下,把问题说清楚并且给出代码,拿去用就行,照着葫芦画瓢。 问题 在继承QWebEngineView后,重写mousePressEvent或event函数无法捕获鼠标按下事…...