当前位置: 首页 > 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}}}
}

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

相关文章:

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中&#xff0c;可以使用transition属性或者keyframes关键帧动画来创建动画效果。 使用缓动函数则可以让动画更加流畅和生动。 div {transition: <property> <duration> <timing-function> <delay>; }div {animation: <keyframes-name> &l…...

蓝桥杯集训·每日一题2024 (差分)

前言&#xff1a; 差分笔记以前就做了&#xff0c;在这我就不再写一遍了&#xff0c;直接上例题。 例题&#xff1a; #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>>…...

嵌入式通信数据经常说的大端和小端模式(学习)

一.概念 大端模式&#xff08;Big-endian&#xff09;&#xff1a;高位字节排放在内存的低地址端&#xff0c;低位字节排放在内存的高地址端&#xff0c;即正序排列&#xff0c;高尾端&#xff1b; 小端模式&#xff08;Little-endian&#xff09;&#xff1a;低位字节排放在…...

bun 单元测试

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

阿里云2核4G服务器支持多少人同时在线?

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

浏览器发出一个请求到收到响应步骤详解

前言 在网络通信中&#xff0c;浏览器向Web服务器发送HTTP请求消息的过程是一个复杂而精密的环节&#xff0c;涉及到URL解析、DNS解析、数据拆分、路由表规则和MAC头部添加等一系列步骤。本文将深入探讨这一过程的每个环节&#xff0c;帮助读者更全面地了解浏览器与Web服务器之…...

121. 买卖股票的最佳时机【leetcode】/动态规划

121. 买卖股票的最佳时机 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从…...

K8S Service相关概念

Service基本概念 K8S Service是K8S实现微服务架构最重要的组件之一&#xff0c;主要作用&#xff1a;1&#xff09;为Pod提供稳定的访问地址&#xff08;域名或IP&#xff09;&#xff0c;2&#xff09;实现负责均衡&#xff0c;3&#xff09;自动屏蔽后端Endpoints的变化。 …...

小米消金剖析“冒充老板”诈骗案例,呼吁群众提高反诈意识

近年来&#xff0c;诈骗手段日益翻新&#xff0c;冒充公司老板身份进行诈骗的案例屡见不鲜。不法分子利用人们的焦虑心理&#xff0c;以冒充老板的身份进行诈骗&#xff0c;给无数工作人员和企业带来了巨大的经济损失。重庆小米消费金融有限公司&#xff08;以下简称“小米消金…...

全量知识系统问题及SmartChat给出的答复 之14 解析器+DDD+文法型 之2

Q36. 知识系统中设计的三种文法解析器和设计模式之间的关系 进一步&#xff0c;我想将 知识系统中设计的三种语言&#xff08;形式语言、人工语言和自然&#xff09;的文法解析器和DDD中的三种程序类型&#xff08;领域模型、领域实体和领域服务&#xff09; 形式语言文法 我…...

蓝桥杯备赛 day2 | 4. 付账问题 5. 数字三角形

付账问题&#xff0c;关键是要了解整型的范围&#xff0c;确定获取输入数据的变量类型 需要注意的是int的十进制范围-32768 ~ 32767&#xff0c;那么我们可以知道&#xff0c;人数n是可以用int来装的&#xff0c;需付款数S应该是long long&#xff0c;获取的每个人初始钱数也应…...

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可以让应用监听所有通知&#xff0c;但是无法获得监听通知的权限&#xff0c;如…...

git的“You can‘t push commits with committe“解决方法

如果使用错误的用户和邮箱执行了git提交&#xff0c;在执行 git push 时将遇到如下错误&#xff1a; ! [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&#xff1a;CAN收发器&#xff08;原理讲解&#xff09; 从原理上来讲CAN_H拉升电压&#xff0c;或CAN_L拉低电压的原理。 以上是TJA1145AT的俯瞰图&#xff0c;此芯片是NXP比较先进的CAN收发器&#xff0c;带SPI总线系统。 回到正题&#xff0c;CAN_H和CAN_L收发器是通过内…...

如何实现WordPress后台显示文章、分类目录、标签等的ID?

我们平时在使用WordPress的过程中&#xff0c;偶尔需要用到文章的ID&#xff0c;或分类目录ID&#xff0c;或标签ID&#xff0c;或媒体库ID&#xff0c;或评论ID&#xff0c;或用户ID等&#xff0c;但是WordPress后台默认是不显示它们的ID的。 今天boke112百科就跟大家分享如何…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

VTK如何让部分单位不可见

最近遇到一个需求&#xff0c;需要让一个vtkDataSet中的部分单元不可见&#xff0c;查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行&#xff0c;是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示&#xff0c;主要是最后一个参数&#xff0c;透明度…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合

在汽车智能化的汹涌浪潮中&#xff0c;车辆不再仅仅是传统的交通工具&#xff0c;而是逐步演变为高度智能的移动终端。这一转变的核心支撑&#xff0c;来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒&#xff08;T-Box&#xff09;方案&#xff1a;NXP S32K146 与…...

uniapp 小程序 学习(一)

利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 &#xff1a;开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置&#xff0c;将微信开发者工具放入到Hbuilder中&#xff0c; 打开后出现 如下 bug 解…...

如何配置一个sql server使得其它用户可以通过excel odbc获取数据

要让其他用户通过 Excel 使用 ODBC 连接到 SQL Server 获取数据&#xff0c;你需要完成以下配置步骤&#xff1a; ✅ 一、在 SQL Server 端配置&#xff08;服务器设置&#xff09; 1. 启用 TCP/IP 协议 打开 “SQL Server 配置管理器”。导航到&#xff1a;SQL Server 网络配…...

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南

在RK3588上搭建ROS1环境:创建节点与数据可视化实战指南 背景介绍完整操作步骤1. 创建Docker容器环境2. 验证GUI显示功能3. 安装ROS Noetic4. 配置环境变量5. 创建ROS节点(小球运动模拟)6. 配置RVIZ默认视图7. 创建启动脚本8. 运行可视化系统效果展示与交互技术解析ROS节点通…...