用户与头像

0
视频
0
完成
0%
进度
0
分钟
0
完成
0%
进度

新建一个目录,名字是“应用实践”,再复制一份请求,名字改成“用户与头像”,把这个请求放在这个新创建的目录里面。

在应用里,用户可以上传头像,我们可以先创建一条头像数据,然后再用一个 edge 关系,关联一下用户与头像,可以再更新一下用户数据。

CREATE avatar ,在 CONTENT 后面设置一下数据对象,手工设置一下数据的 id,值是 avatar:1,再添加一个 file 属性,值可以用 rand::uuid() 生成一个随机的 uuid。

RELATE

下面再用 RELATE 创建一个 edge 关系,user:libai->create->avatar:1 ,通过这个关系我们可以知道 avatar:1 是 user:libai 创建的。通过这个 edge 关系,可以查询到用户的头像。

edge

SELECT * FROM user,在选择的字段里面,再添加一个 ->create->avatar AS avatar,在李白这个用户数据里现在会有一个 avatar 属性,它的值是一组 avatar 数据的 id,也就是这个用户创建的 avatar 数据的 id。想得到具体的 avatar 数据,可以在查询里 FETCH 一下 avatar 这个字段。

子查询

再试一下用一条子查询得到用户的头像。一组括号,括号外面用 AS 起个名字叫 avatar,在括号里面是写一段子查询,SELECT * FROM avatar,用 WHERE 设置条件,$parent->create->avatar。

然后再用 ORDER BY 排下顺序,排序字段可以设置成 id,排序方式是 DESC,再用 LIMIT 限制只返回一个结果。

现在得到的用户数据里面,这个 avatar 属性的值就是用户的头像。

更新文档

为了更方便,我们可以在用户创建了头像数据以后,再修改一下 user 数据,在里面添加一个 avatar 属性,链接一个 avatar 数据。

执行一下 UPDATE user:libai ,SET avatar = avatar:1。

这样如果想在返回的用户数据里包含具体的头像,可以执行 SELECT * FROM user:libai FETCH avatar。

用户与头像《 SurrealDB 多模型数据库:应用实践 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点